JavaScriptを有効にしてください

Go言語における関数(func)の基礎

 · 

関数は、特定のタスクを実行するためのコードの集合体です。
Go言語では、関数はプログラムの基本構成要素の一つであり、その強力な型システムと並行処理のサポートを通じて、効率的で読みやすいコードを書くためのキーとなります。
この記事では、Go言語での関数の定義方法、使い方、および実践的な利用例について、初心者にも分かりやすく解説します。

Go言語での関数の定義方法

Go言語で関数を定義する基本的な構文は次のとおりです。

1
2
3
4
func 関数名(パラメータ パラメータの型) 戻り値の型 {
    // 関数の中身
    return 戻り値
}

funcキーワードは関数を定義するために使用されます。関数名はその機能を示唆する名前にすることが推奨されます。パラメータは関数に渡される入力値で、それぞれの型と共に指定されます。
Go言語では、同じ型のパラメータを列挙する際に型を省略して記述することも可能です。
例:x, y int
戻り値の型は、関数が呼び出し元に返す値の型です。戻り値が不要な場合、この部分を省略できます。

関数の例

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

このadd関数は、2つの整数xyを引数として受け取り、その和を返します。関数の呼び出しは以下のように行います。

1
2
3
4
func main() {
    result := add(3, 5)
    fmt.Println(result)  // 出力: 8
}

複数の戻り値

Go言語の強力な特徴の一つは、関数が複数の戻り値を直接返すことができる点です。

1
2
3
func split(sum int) (int, int) {
    return sum / 2, sum % 2
}

このsplit関数は、与えられた整数を2で割った商と余りを返します。複数の戻り値を受け取るには、次のようにします。

1
2
3
4
func main() {
    x, y := split(5)
    fmt.Println(x, y)  // 出力: 2 1
}

実践的な例:エラーハンドリング

Go言語では、エラーハンドリングも関数の戻り値を通じて行われます。

1
2
3
4
5
6
func safeDiv(x, y int) (int, error) {
    if y == 0 {
        return 0, errors.New("cannot divide by zero")
    }
    return x / y, nil
}

この関数は、0での除算を試みた場合にエラーを返します。

Go言語のエラー処理の詳細については下記記事で解説しています。
Go言語のエラー処理の仕組み① - 基本編

まとめ

Go言語の関数は、コードの再利用性を高め、複雑なタスクをシンプルにする強力なツールです。型安全性や並行処理のサポートなど、Goの特性を最大限に活用することで、効率的で読みやすいコードを書くことができます。
この記事で紹介した基本的な概念と例を通じて、Go言語での関数の使い方を理解し、あなたのプログラミングスキルをさらに向上させましょう。


スポンサーリンク

共有

もふもふ
著者
もふもふ
プログラマ。汎用系→ゲームエンジニア→Webエンジニア→QAエンジニア