如何在 Golang 中创建具有这种数据类型和值的变量?指向具有 nil 值的结构的指针?

我正在做一个单元测试,但是我发现了我不理解的这种数据类型。

Error:          
       Not equal: 
                 expected: <nil>(<nil>)
                 actual  : *pkgname.StructName((*pkgname.StructName)(nil))

仅供参考,pkgname 是包的名称,StructName 是结构的名称

如何创建具有相同数据类型和值“* pkgname.StructName((*pkgname.StructName)(nil)) ”的变量?

它是指向 nil 值的结构指针吗?


冉冉说
浏览 104回答 1
1回答

慕斯709654

您没有提及您使用哪个测试框架或方法,但从错误来看,最肯定的错误是您期望一个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)是一种类型转换,它将nil(指针)值转换为*pkgname.StructName指针类型。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go