Go+ 概述
Go+ 是一门融合工程开发的 Go、数据科学领域的 Python、编程教学领域的 Scratch,以 Python 之形结合 Go 之心,让工程师处理数据不需要学习新的开发语言,让初学者学习编程、开发作品的门槛更低的编程语言。
正文
前面的文章已经介绍了 Go+ 如何定义结构体,现在我们介绍一下如何为结构体定义成员方法。接下来我们就来了解一下这部分的一些内容。
定义成员函数方法
定义成员函数的时候,一共有两种方式,第一种是指针方式,我们定义一个计算矩阵面积的方法,代码实例如下:
type rect struct {
width int,
height int
}
func (r *rect) area() int {
return r.width * r.height
}
第二种是值方式,我们定义一个计算矩阵周长的方法,代码实例如下:
type rect struct {
width int,
height int
}
func (r rect) perim() int {
return 2*(r.width + r.height)
}
需要注意的是,两种方式可以自动切换,基本上是等效的,这样的好处就是避免了研发人员混淆二者。
完整代码实例
为了清楚的对比两种结构体方法的区别,下面通过一段代码来看一下,代码实例:
type rect struct {
width, height int
}
func (r *rect) area() int {
return r.width * r.height
}
func (r rect) perim() int {
return 2*(r.width + r.height)
}
r := rect{width: 10, height: 5}
println("矩形面积: ", r.area())
println("矩形周长:", r.perim())
rp := &r
println("矩形面积: ", rp.area())
println("矩形周长:", rp.perim())
执行结果:
矩形面积: 50
矩形周长: 30
矩形面积: 50
矩形周长: 30