Go 语言函数方法


Go 语言中同时有函数和方法。一个方法就是一个包含了接受者的函数,接受者可以是命名类型或者结构体类型的一个值或者是一个指针。所有给定类型的方法属于该类型的方法集。语法格式如下:

  1. func (variable_name variable_data_type) function_name() [return_type]{
  2. /* 函数体*/
  3. }

下面定义一个结构体类型和该类型的一个方法:

  1. package main
  2.  
  3. import (
  4. "fmt"
  5. )
  6.  
  7. /* 定义函数 */
  8. type Circle struct {
  9. radius float64
  10. }
  11.  
  12. func main() {
  13. var c1 Circle
  14. c1.radius = 10.00
  15. fmt.Println("Area of Circle(c1) = ", c1.getArea())
  16. }
  17.  
  18. //该 method 属于 Circle 类型对象中的方法
  19. func (c Circle) getArea() float64 {
  20. //c.radius 即为 Circle 类型对象中的属性
  21. return 3.14 * c.radius * c.radius
  22. }

以上代码执行结果为:

  1. Area of Circle(c1) = 314