1)player.go
package player type Player struct { id int name string } func (self *Player) GetId() int { return self.id } func (self *Player) GetName() string { return self.name } func NewPlayer(id int, name string) *Player { return &Player{ id: id, name: name, } }2)main.go(example位于src下,src的上一级则为GOPATH)
package main import ( "example/chapter4/demo06/player" "fmt" ) func main() { p1 := player.NewPlayer(1, "jianan") fmt.Println(p1.GetId(), p1.GetName()) } /* 1.直接运行: 直接goland中点击箭头即可 2.编译 ➜ src pwd /Users/jianan/Documents/my_git/go/src ➜ src go install example/chapter4/demo06 3.运行二进制 ➜ bin pwd /Users/jianan/Documents/my_git/go/bin ➜ bin ./demo06 1 jianan */---------------
player.go
package player /** 鸭子类型,只有GetId */ type IPlayer interface { GetId() int } /** 玩家类 */ type Player struct { id int name string } func (self *Player) GetId() int { return self.id } func (self *Player) GetName() string { return self.name } func NewPlayer(id int, name string) *Player { return &Player{ id: id, name: name, } }main.go
package main import ( "example/chapter4/demo06/player" "fmt" ) func main() { var p1 player.IPlayer = player.NewPlayer(1, "jianan") fmt.Println(p1.GetId()) } /* 1 */