方法和函数的区别

  • 方法的语法格式如下
    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 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!