#この記事の動作環境: Windows10 システム、Go 1.11.2、thinkpad t480 コンピューター。 関数とメソッドの違いの公式説明: メソッドは、レシーバーを含む関数です。レシーバは、名前付き型、構造型、またはポインタの値にすることができます。特定のタイプのすべてのメソッドは、そのタイプのメソッド セットに属します。 相違点: 1. 通常の関数の場合: レシーバ (関数パラメータ) が値型の場合、ポインタ型のデータを直接渡すことはできません。また、その逆も同様です。Go 言語における関数とメソッドの違い: 通常の関数の場合、レシーバーが値型の場合、ポインタ型のデータを直接渡すことはできませんが、メソッドの場合、レシーバーが値型の場合、ポインタ型のデータを直接渡すことはできません。ポインタ型は変数呼び出しメソッドを直接利用できます。
func function_name([parameter list]) [return_types] { 函数体 }
Go 言語の標準ライブラリには、使用できるさまざまな組み込み関数が用意されています。たとえば、len() 関数はさまざまな型の引数を受け入れ、その型の長さを返すことができます。文字列を渡した場合は文字列の長さが返され、配列を渡した場合は配列に含まれる要素の数が返されます。
Go メソッド
Go 言語には関数とメソッドの両方があります。メソッドは、名前付き型、構造型、またはポインターの値であるレシーバーを含む関数です。特定のタイプのすべてのメソッドは、そのタイプのメソッド セットに属します。
次は、構造体のタイプとこのタイプのメソッドを定義します:
func (variable_name variable_data_type) function_name() [return_type]{ /* 函数体*/ }
プログラミング入門
)package mainimport ( "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 }
Area of Circle(c1) = 314
golang チュートリアル
以上がGo言語の関数とメソッドの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。