Sadece Go tour aracılığıyla çalışıyorum ve işaretçiler ve arabirimler hakkında kafam karıştı. Bu Go kodu neden derlenmiyor?Neden bir * Arabirime bir * Yapısı atayamıyorum?
package main
type Interface interface {}
type Struct struct {}
func main() {
var ps *Struct
var pi *Interface
pi = ps
_, _ = pi, ps
}
yani Struct
eğer neden *Struct
bir *Interface
olmaz, bir Interface
mı?
alıyorum hata iletisi:
prog.go:10: cannot use ps (type *Struct) as type *Interface in assignment:
*Interface is pointer to interface, not interface
See kullanmalıdır da http://stackoverflow.com/q/20874798/260805 o – Ztyx
senin fonk ana() { \t var ps * Struct = new (Struct) \t var pi * Arayüz \t var i Arayüz \t i = ps \t pi 'ile oyun alanı = & i \t fmt.Printf ("% v,% v,% v \ n", * ps, pi, & i) \t i = * ps \t fmt.Printf ("% v,% v,% v \ n", * ps, i) \t _, _, _ = i, pi, ps } 've kendi sonuçlarınızı yapın – Victor
i zenginleştirmek önerebilir ... örtük işaretçiler gibi davranır olabilir arayüzleri benziyor – Victor