为什么从当前程序包将结构传递给具有文字struct参数的函数与从另一个程序包传递的函数不同?

为什么从当前程序包将结构传递给具有文字struct参数的函数与从另一个程序包传递的函数不同?,第1张

为什么从当前程序包将结构传递给具有文字struct参数的函数与从另一个程序包传递的函数不同?

您需要导出您的struct字段

type Struct struct {    Field string}

然后还将调用更改为使用导出的字段:

func Fn(arg struct{Field string}) {    fmt.Println(arg)}

根据语言规范(特别是最后一句话):

对于结构文字,以下规则适用:

  • 键必须是在LiteralType中声明的字段名称。
  • 不包含任何键的元素列表必须按声明字段的顺序为每个struct字段列出一个元素。
  • 如果任何元素具有键,则每个元素都必须具有键。
  • 包含键的元素列表不需要为每个结构字段都具有一个元素。省略的字段将获得该字段的零值。
  • 文字可能会省略元素列表;这样的文字对其类型求值为零。
  • 为属于不同包的结构的非导出字段指定元素是错误的。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4960089.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-13
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存