Go言語の関数メソッド
Go言語には関数とメソッドの両方があります。メソッドとは、レシーバーを含む関数です。レシーバーは、名前付き型または構造体型の値またはポインタのいずれかです。指定された型のすべてのメソッドは、その型のメソッドセットに属します。構文は次のとおりです:
func (variable_name variable_data_type) function_name() [return_type]{
/* 函数体*/
}
以下に、構造体型とその型のメソッドを1つ定義します:
例
package main
import (
"fmt"
)
/* 構造体を定義 */
type Circle struct {
radius float64
}
func main() {
var c1 Circle
c1.radius = 10.00
fmt.Println(円の面積 =, c1.getArea())
}
// このメソッドは Circle 型オブジェクトのメソッドです
func (c Circle) getArea() float64 {
// c.radius は Circle 型オブジェクトの属性です
return 3.14 * c.radius * c.radius
}
import (
"fmt"
)
/* 構造体を定義 */
type Circle struct {
radius float64
}
func main() {
var c1 Circle
c1.radius = 10.00
fmt.Println(円の面積 =, c1.getArea())
}
// このメソッドは Circle 型オブジェクトのメソッドです
func (c Circle) getArea() float64 {
// c.radius は Circle 型オブジェクトの属性です
return 3.14 * c.radius * c.radius
}
上記コードの実行結果は次のとおりです:
圆的面积 = 314その他の拡張
Go 関数