I am very confused about the following Go code. Who can tell me why
worker=u
andwork=&u
are valid?worker=p
is valid?worker=&p
is invalid?- What is difference between User and People?
package main
import (
"fmt"
)
type Worker interface {
Work()
}
type User struct {
name string
}
func (u User) Work() {
}
type People struct {
name string
}
func (p *People) Work() {
}
func main() {
var worker Worker
u := User{name:"xxx"}
worker = u // valid
worker = &u // valid
p := People{name:"xxx"}
worker = p // invalid
worker = &p // valid
}