四十五、Go 语言函数方法

Go语言中既有函数又有方法,一个方法就是一个包含了接受者的函数,接受者可以是命名类型或者结构体类型的一个值或者是一个指针

所有给定类型的方法属于该类型的方法集

语法

Go语言中方法的语法格式如下

func (variable_name variable_data_type) function_name() [return_type]{
   /* 函数体*/

范例

下面的范例为一个结构体类型 Circle 定义了一个 getArea() 方法

/**
 * file: main.go
 * author: pottercoding.cn 程序员波特,程序员编程资料站(pottercoding.cn)
 * Copyright © 2015-2065 pottercoding.cn. All rights reserved.
 */
package main
import (
   "fmt"  
/* 定义函数 */
type Circle struct {
  radius float64
func main() {
  var c1 Circle
  c1.radius = 10.00
  fmt.Println("Area of Circle(c1) = ", c1.getArea())
//该 method 属于 Circle 类型对象中的方法
func (c Circle) getArea() float64 {
  //c.radius 即为 Circle 类型对象中的属性
  return 3.14 * c.radius * c.radius

编译运行以上 Go 语言范例,输出结果如下

$ go run main.go
Area of Circle(c1) =  314