関数の基本とシグネチャ
パラメーター、戻り値の型、呼び出し規約
「関数の基本とシグネチャ」はCoddyKit上の無料Go Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはGo Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Go Academyコースには全4レッスンが含まれています。
関数の定義
Goでは、funcキーワードを使って関数を定義します。
func greet(name string) string {
return "Hello, " + name
}パラメーターと引数
パラメーターには型を指定し、name typeの組み合わせで列挙します。同じ型の複数のパラメーターでは、型の指定を共有できます。
func add(x, y int) int {
return x + y
}
func rect(w, h float64) float64 {
return w * h
}戻り値のない関数
値を返さない関数では、戻り値の型を省略します。実行が末尾に到達すると、暗黙的に戻ります。
func printBanner(title string) {
fmt.Println("=====", title, "======")
}関数の呼び出し
関数名の後に括弧を付け、対応する引数を渡して関数を呼び出します。
result := add(3, 4) // 7
fmt.Println(greet("Go")) // Hello, Go
printBanner("Welcome")第一級値としての関数
Goでは関数は第一級値です。変数に代入したり、引数として渡したりできます。
apply := func(n int, f func(int) int) int {
return f(n)
}
double := func(n int) int { return n * 2 }
fmt.Println(apply(5, double)) // 10関数型
名前付き関数型を定義すると、シグネチャをより明確にできます。
type Transform func(int) int
func applyAll(n int, fns []Transform) int {
for _, f := range fns {
n = f(n)
}
return n
}再帰関数
Goは再帰をサポートしています。スタックの深さには注意してください。Goのゴルーチンスタックは動的に拡張されますが、無制限の再帰はスタックオーバーフローを引き起こします。
func factorial(n int) int {
if n <= 1 {
return 1
}
return n * factorial(n-1)
}関数の命名規則
Goにおける関数の命名規則は次のとおりです。
MixedCaps(エクスポート対象)またはmixedCaps(非エクスポート対象)を使用します- 短く、動作を表す名前にします:
New、Get、Parse、Write - 単純なゲッターには
GetXを使わず、Xだけにします - ブール値を返す述語には
IsValidやHasPrefixを使います
init()関数
特別なinit()関数は、パッケージが読み込まれたときにmain()より前に自動的に実行されます。
- 引数を受け取らず、何も返しません
- 1つのパッケージに複数のinit()関数を定義できます
- ドライバーの登録など、一度だけ行う初期設定に使用します
関数とメソッド
関数はどの型にも関連付けられていません。メソッドにはレシーバーがあります(「構造体とメソッド」で扱います)。どちらもfuncキーワードを使用します。
// Function
func max(a, b int) int { ... }
// Method
func (c Counter) Value() int { ... }クイックチェック
Goでは、関数から複数の値を返せますか?
まとめ:関数の基本
Goの関数は表現力が高く柔軟です。
func name(params) returnType { }- 同じ型のパラメーターでは、型の指定を共有できます
- 関数は第一級値です
- 再利用可能なシグネチャには関数型を定義します
- 再帰をサポートしており、init()はパッケージの読み込み時に実行されます
次は、複数の戻り値について詳しく学びます。
よくある質問
「関数の基本とシグネチャ」レッスンは無料ですか?
はい。「関数の基本とシグネチャ」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Go Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Go Academyコースには全4レッスンが含まれています。
「関数の基本とシグネチャ」で何を学びますか?
パラメーター、戻り値の型、呼び出し規約 ブラウザで直接実行するハンズオンコードでGo Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Go Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのGo Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「関数の基本とシグネチャ」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このGo Academyレッスンでコードを書いて実行できますか?
はい。すべてのGo Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 関数の基本とシグネチャ
- 複数の戻り値
- 可変長引数関数
- defer、無名関数、クロージャ