【发布时间】:2019-02-08 12:49:45
【问题描述】:
在下面的代码中
var a int
var b interface{}
b = a
fmt.Printf("%T, %T \n", a, &a)
fmt.Printf("%T, %T \n", b, &b)
输出:
int, *int
int, *interface {}
我希望 &b 的类型是 int 上的指针。
我有两个问题:
1) 为什么它是 interface{} 上的指针?
2) 如何获得原始类型的指针?
【问题讨论】:
-
只是一个挑剔/友好的建议:尽可能避免使用
interface{}。这是一个强大的工具,有时你无法避免它,但对于语言新手来说,在他们真的不应该使用interface{}时,这是一个常见的错误
标签: pointers go interface address-operator