Go の基本: 関数


前回の記事では、変数と定数の構文について説明しました.それでは、Go の関数の構文とそのバリエーションを見てみましょう.

機能



関数は func キーワードを使用して宣言されます.
前回の記事で関数の構文を見たことがあるかもしれません.もう一度見てみましょう.

// function that takes two integers and returns their sum
func square(a int) int {
    return a*a
}

//main function calling square
func main() {
    fmt.Println(square(2))
}


  • 関数は、戻り値の型 int と関数名 square で宣言されています.
  • タイプ a のパラメーター int が 1 つあります.
  • 関数本体は中括弧で囲まれています {} .
  • return ステートメントは、式の値を返すために使用されます.
  • 関数の呼び出しは単純です square(2) - 他の言語と同様です.

  • 次に、関数構文のいくつかのバリエーションを見てみましょう.

    複数のパラメータを持つ関数

    func add(a, b int) int {
        return a + b
    }
    


    どちらのパラメーターも int 型であるため、コンマ区切りで宣言できます.

    さまざまなタイプのパラメーターを持つ関数

    func add(a, b int, c float64) int {
        return a + b + int(c)
    }
    


    この関数は 3 つのパラメーターを受け入れます.最初の 2 つは int 型で、最後の 2 つは float64 型です.
    パラメーターが次の型とは異なる型の場合、その型を宣言することが必須です.

    複数の戻り値を持つ関数
    Java などの他の言語とは異なり、関数から複数の値を返すことができます.そのためには、すべての戻り値の戻り値の型をタプルとして定義する必要があります.

    func sumAndDiff(a, b int) (int, int) {
        return a + b, a - b
    }
    //main function calling add
    func main() {
        sum, difference := sumAndDiff(10, 5)
        fmt.Println(sum, difference)
    }
    


    2 つの戻り値が宣言されています.どちらもタイプは int です. return ステートメントに注目してください.これは 2 つの値を返します.
    関数呼び出しが sumAndDiff(10, 5) と記述され、2 つの戻り値が変数 sumdifference に割り当てられていることに注目してください.

    名前付きの戻り値を持つ関数

    func sumAndDiff(a, b int) (sum int, difference int) {
        sum = a + b
        difference = a - b
        return
    }
    


    戻り値は sum および difference という名前で宣言されています. return ステートメントは、変数 sum および difference の値を返しますが、それらについて言及する必要はありません.
    これは、関数の最後まで戻り値を保持する一時変数を作成する場合に便利です.

    可変数のパラメーターを持つ関数

    func add(nums ...int) int {
        sum := 0
        //loop over nums and add them to sum
        for _, num := range nums {
            sum += num
        }
        return sum
    }
    
    //main function calling add
    func main() {
        fmt.Println(add(1, 2, 3, 4, 5))
    }
    
    


    この関数は、可変数のパラメーターを受け入れます.パラメータのタイプは int です.... 演算子は、関数が可変数のパラメーターを受け入れることを示すために使用されます.

    関数呼び出しで、5 つの値を送信したことに注目してください.

    注: for ループの _ は、返される数値のインデックスのプレースホルダーです. for ループのバリエーションについては後で詳しく説明します.


    これにより、Go での関数構文のアイデアが得られるはずです. Go 構文の詳細については、しばらくお待ちください.

    読んでくれてありがとう.私とつながりたい場合は、 Twitter で私を見つけることができます.