-1
是否有可能獲得對接口值的引用而不會反覆出現 ?如果不是,爲什麼不呢?如何獲取對接口值的引用
我曾嘗試:
package foo
type Foo struct {
a, b int
}
func f(x interface{}) {
var foo *Foo = &x.(Foo)
foo.a = 2
}
func g(foo Foo) {
f(foo)
}
,但它失敗:
./test.go:8: cannot take the address of x.(Foo)
你不能。接口中的值不可尋址。如果你需要一個指針,在界面中放一個指針。 – JimB
正如JimB指出的那樣,它不可尋址。界面值包含原件的副本,所以沒有意義。請參閱相關/可能重複的問題:[類型的結構方法,滿足接口](http://stackoverflow.com/questions/41015114/types-of-go-struct-methods-that-satisfy-an-interface/41016448 #41016448) – icza
@icza。你真的幫助我不去理解 –