如何在 Golang 中创建具有这种数据类型和值的变量?指向具有 nil 值的结构的指针?
How to make a variable with this data type and value in Golang? Pointer to a struct with a nil value?
我正在做单元测试,但是我发现这个数据类型我不明白。
Error:
Not equal:
expected: <nil>(<nil>)
actual : *pkgname.StructName((*pkgname.StructName)(nil))
仅供参考,pkgname 是包的名称,StructName 是结构的名称
如何创建一个具有相同数据类型和值“*pkgname.StructName((*pkgname.StructName)(nil))”的变量?
它是指向 nil 值的结构指针吗?
你没有提到你使用的是哪个测试框架或方法,但从错误来看,最肯定的错误是你期望一个 nil
值(没有类型),你得到一个 nil
具有具体基类型的指针类型的指针值。
要修复它,您应该期待一个类型化的 nil
值,而不是一个 nil
接口值(没有类型)。
例如:
actualValue := ... // Execute function / method / whatever, obtain testable value
// Test it the way you do
// (Here I assume you do it with a function named expectEqual):
expectEqual((*pkgname.StructName)(nil), actualValue)
注意(*pkgname.StructName)(nil)
是一个类型conversion,它将nil
(指针)值转换为*pkgname.StructName
指针类型。
查看相关问题:
我正在做单元测试,但是我发现这个数据类型我不明白。
Error:
Not equal:
expected: <nil>(<nil>)
actual : *pkgname.StructName((*pkgname.StructName)(nil))
仅供参考,pkgname 是包的名称,StructName 是结构的名称
如何创建一个具有相同数据类型和值“*pkgname.StructName((*pkgname.StructName)(nil))”的变量?
它是指向 nil 值的结构指针吗?
你没有提到你使用的是哪个测试框架或方法,但从错误来看,最肯定的错误是你期望一个 nil
值(没有类型),你得到一个 nil
具有具体基类型的指针类型的指针值。
要修复它,您应该期待一个类型化的 nil
值,而不是一个 nil
接口值(没有类型)。
例如:
actualValue := ... // Execute function / method / whatever, obtain testable value
// Test it the way you do
// (Here I assume you do it with a function named expectEqual):
expectEqual((*pkgname.StructName)(nil), actualValue)
注意(*pkgname.StructName)(nil)
是一个类型conversion,它将nil
(指针)值转换为*pkgname.StructName
指针类型。
查看相关问题: