为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
冉冉说 2022-10-24 15:59:22
我正在做一个单元测试,但是我发现了我不理解的这种数据类型。Error:                  Not equal:                   expected: <nil>(<nil>)                  actual  : *pkgname.StructName((*pkgname.StructName)(nil))仅供参考,pkgname 是包的名称,StructName 是结构的名称如何创建具有相同数据类型和值“* pkgname.StructName((*pkgname.StructName)(nil)) ”的变量?它是指向 nil 值的结构指针吗?
查看完整描述

1 回答

?
慕斯709654

TA贡献1840条经验 获得超5个赞

您没有提及您使用哪个测试框架或方法,但从错误来看,最肯定的错误是您期望一个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指针类型。


查看完整回答
反对 回复 2022-10-24
  • 1 回答
  • 0 关注
  • 102 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号