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

golang の関数とメソッド

王林
リリース: 2023-05-10 11:11:36
オリジナル
608 人が閲覧しました

Golang は、効率性、シンプルさ、安全性、同時実行性の特徴を備えた静的型付けプログラミング言語です。 Golang の基本コンポーネントの 1 つである関数とメソッドについて、この記事では Golang の関数とメソッドについて詳しく紹介します。

関数

関数は、プログラム内で複数回呼び出すことができる再利用可能なコード ブロックです。 Golang では、関数定義にはキーワード func を使用し、その基本的な構文は次のとおりです。

func functionName(parameters) returnType {
    // 函数体
    return result
}
ログイン後にコピー

このうち、functionName は関数名を表し、 parameters は関数の仮パラメータリストを表し、returnType は関数の戻り値の型を表し、result は関数の戻り値を表します。

たとえば、2 つの数値の合計を計算する単純な関数を次に示します。

func add(x int, y int) int {
    return x + y
}
ログイン後にコピー

Golang では、関数は複数の戻り値を持つことができます。たとえば、2 つの数値の最小値と最大値を返す関数を次に示します。

func minMax(x int, y int) (int, int) {
    if x < y {
        return x, y
    } else {
        return y, x
    }
}
ログイン後にコピー

特定の戻り値は、アンダースコア _ を使用することで無視できます。たとえば、最小値のみを返す関数を次に示します。

func min(x int, y int) int {
    if x < y {
        return x
    } else {
        return y
    }
}
ログイン後にコピー

Method

メソッドは、特定の型の変数にのみ関連付けることができ、その変数にアクセスできる特別な関数です。変数のプロパティとメソッド。 Golang では、メソッドは func キーワードを使用して定義され、その基本構文は次のとおりです。

func (receiver type) methodName(parameters) returnType {
    // 方法体
    return result
}
ログイン後にコピー

このうち、receiver は変数の型 を表します。 type は変数の型名を表し、methodName はメソッド名を表し、parameters はメソッドの仮パラメータ リストを表し、returnType は戻り値の型を表しますメソッドの result はメソッドの戻り値を表します。

たとえば、長方形とその面積を計算するメソッドを記述する構造体を次に示します。

type Rect struct {
    width  float64
    height float64
}

func (r Rect) Area() float64 {
    return r.width * r.height
}
ログイン後にコピー

Golang では、メソッドにポインタ レシーバと値レシーバを含めることができます。ポインタ レシーバではメソッドが呼び出し元の値を変更できますが、値レシーバでは変更できません。上記の例では、r Rect はポインターを使用しないため、値の受信側になります。

たとえば、次のメソッドは、四角形のサイズを変更するポインター レシーバーを使用します。

func (r *Rect) Resize(scale float64) {
    r.width *= scale
    r.height *= scale
}
ログイン後にコピー

ポインター レシーバーの型はポインター型であり、ポインターを使用することに注意してください。受信側は呼び出し側の値を変更します。

概要

関数とメソッドは、Golang の重要なコード コンポーネントです。関数は、0、1、または複数の値を返すことができる再利用可能なコード ブロックです。メソッドは、特定の型の変数にのみ関連付けることができ、その変数のプロパティとメソッドにアクセスできる関数です。 Golang では、メソッドにポインター レシーバーと値レシーバーを持つことができます。ポインター レシーバーではメソッドが呼び出し元の値を変更できますが、値レシーバーでは変更できません。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート