笔记 - 方法和函数的区别
- 方法的语法格式如下
func(接受者变量 接受者类型) 方法名(参数列表) (返回值列表) { // 方法体 }
- 函数的语法格式如下
一段程序可以用函数来写也可以用方法来写,主要有以下两个原因。func 函数名(参数列表) { // 函数体 }
- Go不是一种纯面向对象的编程语言,他不支持类。因此其方法旨在实现类似类的行为。
- 相同名称的方法可以再不同的类型上定义,而具有相同名称的函数是不允许的。假有个正方形和圆形,可以分别在正方形和圆形上定义一个名为Area的求面基的方法。如下代码:
type Rectangle struct { width, height float64 } type Circle struct{ radius float64 } func main() { r1 := Rectangle{10, 4} r1 := Rectangle{12, 5} c1 := Circle{1} c1 := Circle{2} fmt.Println("r1 的面积", r1.Area()) fmt.Println("r2 的面积", r2.Area()) fmt.Println("c1 的面积", c1.Area()) fmt.Println("c2 的面积", c2.Area()) } // 定义 Rectangle的方法 func(r Rectangle)Area() floa64 { return r.width * r.height } // 定义Circle方法 func(c Circle) Area() float64 { return c.radius * c.radius * math.Pi }
本作品采用《CC 协议》,转载必须注明作者和本文链接