Je suis juste en train de travailler sur le Allez-y et je suis confus à propos des pointeurs et des interfaces. Pourquoi ce code Go ne compile-t-il pas ?
package main
type Interface interface {}
type Struct struct {}
func main() {
var ps *Struct
var pi *Interface
pi = ps
_, _ = pi, ps
}
c'est-à-dire que si Struct
est un Interface
pourquoi un *Struct
être un *Interface
?
Le message d'erreur que je reçois est le suivant :
prog.go:10: cannot use ps (type *Struct) as type *Interface in assignment:
*Interface is pointer to interface, not interface
1 votes
Voir aussi stackoverflow.com/q/20874798/260805
0 votes
Il semble que les interfaces pourraient se comporter comme des pointeurs implicites...
0 votes
func main() { var ps *Struct = new(Struct) var pi *Interface var i Interface i = ps pi = &i fmt.Printf("%v, %v, %v\n", *ps, pi, &i) i = *ps fmt.Printf("%v, %v, %v\n", *ps, pi, i) _, _, _ = i, pi, ps }
et tirez vos propres conclusions