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
*/