我正在关注本教程:https : //github.com/astaxie/build-web-application-with-golang/blob/master/en/02.5.md。
我仍然不太了解指针,所以过去的事情让我有点困惑:func (h *Human) SayHi(). 我尝试删除*和输出结果完全相同。为什么*在这种情况下是必要的?有人可以用下面的代码给我一个不同输出的例子吗?
package main
import "fmt"
type Human struct {
name string
age int
phone string
}
type Student struct {
Human // anonymous field
school string
}
type Employee struct {
Human
company string
}
// define a method in Human
func (h *Human) SayHi() {
fmt.Printf("Hi, I am %s you can call me on %s\n", h.name, h.phone)
}
func main() {
mark := Student{Human{"Mark", 25, "222-222-YYYY"}, "MIT"}
sam := Employee{Human{"Sam", 45, "111-888-XXXX"}, "Golang Inc"}
mark.SayHi()
sam.SayHi()
}
森林海
慕的地10843
相关分类