```
package main
import (
"fmt"
)
type dog struct {
Name string
}
func recv(intf interface{}) {
//how to get the &d value ?
}
func main() {
var d = dog{ Name: "Bolter"}
fmt.Printf("intf: %p\n", &d)
recv(&d)
}
```
你这里很奇怪,
我一直都是这么使用的毫无问题,
你不就是要转成*dog, 然后操作dog的东西么。
为啥要牵扯到指针呢?
如果类型不明就算拿到了pointer指针你接下来怎么玩呢?
转化不了具体数据类型的指针就是一个数字而已。
你如果说这里可能是dog, 也可能是cat是要实现动态判断吗?
你可以用swith type这种经典的用法
switch intf.(type) {
case *Dog:
dog := intf.(*Dog)
case *Cat:
cat:= intf.(*Cat)
default:
doSomeDefaultThing()
}
楼主是C或者C++转过来的吗?思路有点奇特。
#5