🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
一个面向对象的程序会用方法来表达其属性和对应的操作,这样使用这个对象的用户就不需要直接去操作对象,而是借助方法来做这些事情。 在Go语言中,可以给任意自定义类型(包括内置类型,但不包括指针类型)添加相应的方法。 ~~~ package main import "fmt" type myInt int // 给 int 起一个别名 func (a myInt) Add(b myInt) myInt { // 面相对象 return a + b } func Add(a, b myInt) myInt { //面向过程 return a + b } func main() { var a myInt = 1 var b myInt = 1 //调用func (a MyInt) Add(b MyInt) fmt.Println("a.Add(b) = ", a.Add(b)) //a.Add(b) = 2 //调用func Add(a, b MyInt) fmt.Println("Add(a, b) = ", Add(a, b)) //Add(a, b) = 2 } ~~~ ~~~ package main import "fmt" type Person struct { id int name string } func (p Person) getPerson() { fmt.Printf("id = %d, name = %s", p.id, p.name) } func main() { p := Person{1, "Bob"} p.getPerson() // id = 1, name = Bob } ~~~