ホームページ  >  記事  >  バックエンド開発  >  golang関数のメソッド

golang関数のメソッド

WBOY
WBOYオリジナル
2023-05-16 12:08:39394ブラウズ

Golang は現在最も人気のあるプログラミング言語の 1 つであり、関数やメソッドの設計が優れていることが特徴の 1 つです。この記事では、Golangの機能とメソッドに関する関連知識を詳しく紹介します。

1. 関数

Golang 関数の基本構文:

func function_name( [parameter list] ) [return_types] {
   //函数体
}

関数のパラメータ リストとその戻り値の型はオプションであり、記述する必要はありません。関数の戻り値が 1 つだけで、その型が非インターフェイス型の場合、括弧は省略できます。

例:

func add(x int, y int) int {
   return x + y
}

func main() {
   fmt.Println(add(1, 2))
}

関数 add は、int 型の 2 つのパラメーターを受け取り、戻り値の型も int です。この関数は、式 add(1, 2) とその関数を通じて呼び出されます。戻り値が出力されます。出力は3です。

Golang 関数は複数の戻り値をサポートします。例:

func swap(x, y string) (string, string) {
   return y, x
}

func main() {
   a, b := swap("hello", "world")
   fmt.Println(a, b)
}

関数 swap は 2 つの文字列型パラメータを受け取り、戻り値の型は 2 つの文字列型です。つまり、戻り値は、複数の代入 a, b := swap(" を通じて 2 つの文字列になります。 hello" , "world") 関数の戻り値をそれぞれ a と b に代入し、最後に hello world を出力します。

2. メソッド

Golang 言語では、メソッドとは、特定の種類の受信機 (クラス) 上の関数を指します。この型は、構造体または任意のカスタム型にすることができます。

メソッドの定義形式は以下のとおりです。

func (variable_name type) function_name([parameter list]) [return_types] {
    //函数体  
}

このうち、variable_name は型 (type) のインスタンス、function_name はその型のメソッドです。

例:

type Rectangle struct {
   length, width int
}

func (r Rectangle) area() int {
   return r.length * r.width
}

func main() {
   r := Rectangle{length: 10, width: 5}
   fmt.Println("area: ", r.area())
}

上記のコードは、長さと幅の 2 つのフィールドを持つ Rectangle 型を定義し、メソッド area() も定義しているため、これはクラスです。メソッド宣言では、レシーバーの型は Rectangle、メソッドの名前は area()、戻り値の型は int です。

次のステートメントは、r という名前の Rectangle インスタンスを作成し、その area() メソッドを呼び出すことによって、このクラスをテストします。

実行出力結果は次のとおりです:

area: 50

メソッドには、型を指すポインターであるポインター レシーバーも含めることができます。例:

type Circle struct {
   radius float64
}

func (c *Circle) area() float64 {
   return math.Pi * c.radius * c.radius
}

func main() {
   c := Circle{radius: 5}
   fmt.Println("area:", c.area())
}

上記のコードは、radius というフィールドを持つ Circle 型を定義し、メソッド area() も定義し、ポインター レシーバーを介して型を指します。したがって、 area() メソッドは Circle インスタンスの値を変更します。

最後に、明示的にコピー型 (受信者) としてマークされていない限り、Golang のすべての型がメソッドを持つことができることに注意する必要があります。ただし、場合によっては、特にハイパフォーマンス産業では、ポインター レシーバーを使用した方がパフォーマンス効率が高い場合があります。ただし、誤って間違ったメソッドを作成すると、プログラムでエラーが発生するため、これらのルールを覚えておく必要があります。

3. 概要

Golang 言語では、関数とメソッド (クラス) が基本的なプログラミング単位です。関数の文法構造を学ぶことで、関数を簡単に定義して呼び出すことができるようになり、プログラム構造がより明確かつ簡潔になります。同時に、メソッドはクラスに組み込まれ、クラスの一部となるため、クラス内のインスタンス変数とメソッドがカプセル化されます。このようにして、プログラムのさまざまな情報や方法をより便利に管理し、リソースの無駄を避けることができます。

以上がgolang関数のメソッドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。