邯郸建设局网站,南阳市住房和城市建设局网站,建网站需要买什么,wordpress个人支付宝本篇文章主要内容为Go语言类相关操作#xff1a;封装和绑定方法介绍及示例。 目录
封装
绑定方法
类方法形参
指针形参
设置类方法参数
指针与非指针区别
总结 封装
go语言支持类的操作#xff0c;但是没有class关键字#xff0c;使用struct来模拟类。
示例如下封装和绑定方法介绍及示例。 目录
封装
绑定方法
类方法形参
指针形参
设置类方法参数
指针与非指针区别
总结 封装
go语言支持类的操作但是没有class关键字使用struct来模拟类。
示例如下
type Person struct {// 成员属性name stringage intgender stringscore float64
} 绑定方法
在类外面绑定类的方法并创建一个类对象并打印和调用类方法。
示例如下
func (p Person) Eat() {fmt.Println(Person is eating)
}func main() {liyu : Person{name: liyu,age: 20,gender: 女,score: 88,}fmt.Println(liyu:, liyu)liyu.Eat()
} 类方法形参
指针形参
类方法的形参可以是任意名称也可以改为指针。
示例如下
func (this Person) Eat() {fmt.Println(Person is eating)// 类的方法可以使用自己的成员fmt.Println(this.name is eating)
} 设置类方法参数
设置类方法的参数在调用时必须传递。
示例如下
func (this *Person) Shop(num int) {fmt.Println(this.name is shoping)fmt.Println(shoping:, num)
}func main() {liyu : Person{name: liyu,age: 20,gender: 女,score: 88,}fmt.Println(liyu:, liyu)liyu.Eat()liyu.Shop(1)
} 指针与非指针区别
类方法的形参指针与非指针参数的区别通过修改类属性name来展示。
指针参数可以修改值非指针的不可修改值。
示例如下
func (p Person) Eat() {// fmt.Println(Person is eating)// 类的方法可以使用自己的成员// fmt.Println(p.name is eating)p.name new_ p.name
}func (p *Person) Eat2() {p.name new_ p.name
}func (this *Person) Shop(num int) {fmt.Println(this.name is shoping)fmt.Println(shoping:, num)
}func main() {liyu : Person{name: liyu,age: 20,gender: 女,score: 88,}liyu1 : liyufmt.Println(Eat,使用p Person,修改name的值 ...)fmt.Println(修改liyu, liyu)liyu.Eat()fmt.Println(修改后liyu, liyu)fmt.Println(Eat2,使用p *Person,修改name的值 ...)fmt.Println(修改liyu1, liyu1)liyu1.Eat2()fmt.Println(修改后liyu1, liyu1)
}
运行结果
Eat,使用p Person,修改name的值 ...
修改liyu {liyu 20 女 88}
修改后liyu {liyu 20 女 88}
Eat2,使用p *Person,修改name的值 ...
修改liyu1 {liyu 20 女 88}
修改后liyu1 {new_liyu 20 女 88} 总结
本篇文章主要内容为Go语言类相关操作封装和绑定方法介绍及示例。