#この記事の動作環境: Windows10 システム、Go 1.11.2、thinkpad t480 コンピューター。 関数とメソッドの違いの公式説明: メソッドは、レシーバーを含む関数です。レシーバは、名前付き型、構造型、またはポインタの値にすることができます。特定のタイプのすべてのメソッドは、そのタイプのメソッド セットに属します。 相違点: 1. 通常の関数の場合: レシーバ (関数パラメータ) が値型の場合、ポインタ型のデータを直接渡すことはできません。また、その逆も同様です。Go 言語における関数とメソッドの違い: 通常の関数の場合、レシーバーが値型の場合、ポインタ型のデータを直接渡すことはできませんが、メソッドの場合、レシーバーが値型の場合、ポインタ型のデータを直接渡すことはできません。ポインタ型は変数呼び出しメソッドを直接利用できます。
func function_name([parameter list]) [return_types] { 函数体 }2. メソッド (構造体メソッドなど) の場合: レシーバーが値型の場合、ポインター型変数を使用してメソッドを直接呼び出すことができ、その逆も可能です。メソッドと関数を参照してください 違いは、 func キーワードの後のメソッドが関数名ではなくレシーバーであることです。レシーバーは自分で定義した型にすることができます。この型は、構造体、インターフェイス、または基本的なデータ型を再定義することもできます。 Go 関数関数は、タスクを実行するために使用されるコードの基本ブロックです。 Go 言語には少なくとも main() 関数があります。 関数を使用してさまざまな関数を分割できます。論理的には、各関数は指定されたタスクを実行します。 関数宣言は、関数の名前、戻り値の型、パラメーターをコンパイラーに伝えます。 Go 関数は複数の値を返すことができます。
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 }Example
Area of Circle(c1) = 314関連する推奨事項:
golang チュートリアル
以上がGo言語の関数とメソッドの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。