指针 – 将结构指针转换为Golang中的接口指针
我有一个功能
func doStuff(inout *interface{}) { ... } 该功能的目的是能够将任何类型的指针视为输入. type MyStruct struct { f1 int } 调用doStuff时 ms := MyStruct{1} doStuff(&ms) 我有 test.go:38: cannot use &ms (type *MyStruct) as type **interface {} in argument to doStuff 如何将& ms与* interface {}兼容?
没有像“指向界面的指针”这样的东西(在技术上,你可以使用它,但通常你不需要它).
如“what is the meaning of interface{} in golang?”所示,界面是一个包含两个数据字的容器: >一个单词用于指向值的底层类型的方法表, 所以删除指针,并且doStuff将正常工作:接口数据将为& ms,您的指针: func doStuff(inout interface{}) { ... } 见this example: ms := MyStruct{1} doStuff(&ms) fmt.Printf("Hello,playground: %vn",ms) 输出: Hello,playground: {1} 正如newacct提到in the comments:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |