如何在 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指针类型。

查看相关问题: