Go基础系列:Go中的方法

 分类: Go programming

Go方法简介

Go中的struct结构类似于面向对象中的类。面向对象中,除了成员变量还有方法。

Go中也有方法,它是一种特殊的函数,定义于struct之上(与struct关联、绑定),被称为struct的receiver。

它的定义方式大致如下:

type mytype struct{}  func (recv mytype) my_method(para) return_type {} func (recv *mytype) my_method(para) return_type {}

这表示my_method()函数是绑定在mytype这个struct type上的,是与之关联的,是独属于mytype的。所以,此函数称为"方法"。所以,方法和字段一样,也是struct类型的一种属性。

其中方法名前面的(recv mytype)(recv *mytype)是方法的receiver,具有了receiver的函数才能称之为方法,它将函数和type进行了关联,使得函数绑定到type上。至于receiver的类型是mytype还是*mytype,后面详细解释。

定义了属于mytype的方法之后,就可以直接通过mytype来调用这个方法:

mytype.my_method()

来个实际的例子,定义一个名为changfangxing的struct类型,属性为长和宽,定义属于changfangxing的求面积的方法area()。

package main  import "fmt"  type changfangxing struct {     length float64     width  float64 }  func (c *changfangxing) area() float64 {     return c.length * c.width }  func main() {     c := &changfangxing{         2.5,         4.0,     }     fmt.Printf("%f\n",c.area()) }

方法的一些注意事项

关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信