モジュール 3 · レッスン 1 / 5コース内の 11/50~10 min
モジュールのレッスン (1/5)
署名とパラメータ
Go では、関数は func で宣言されます。署名の構文が異なります
C/Java の場合: 型はパラメーター名の後に続きます。
スペース。これは読み上げやすくするための選択です。代わりに「int 型の n」を使用します。
「int n」の。
基本的な構文
Go
func sum(a int, b int) int {
return a + b
}
func greet(name string) {
fmt.Println("ciao", name)
}戻り値のない関数は、単に戻り値の型を省略します。
同じ型の連続したパラメータ
複数の連続するパラメータが同じ型を共有する場合、次のように宣言できます。 最後に一度だけです。これは慣用的なもので、どこでも見られます。
Go
func sum(a, b int) int { return a + b }
func max3(a, b, c float64) float64 { /* ... */ }
func parse(s, sep string, limit int) []string { /* ... */ }エクスポートされた関数とエクスポートされていない関数
Go では、可視性は名前によって決まります: で始まる識別子 大文字の付いたものは エクスポート (他のパッケージから表示可能)、 他のものはパッケージに対してプライベートです。
Go
func Sum(a, b int) int { ... } // esportata
func helper() { ... } // privata al package値としての機能
関数は 第一級の値 です。関数を代入したり、渡したり、 それらを返してください。クロージャに関するレッスンをさらに深く掘り下げていきます。
Go
op := sum // op ha tipo func(int, int) int
fmt.Println(op(2, 3)) // 5main および init: 2 つの特別な名前
func main()は、mainパッケージのエントリ ポイントです。議論はありません。 戻り値はありません。func init()はパッケージの起動時に自動的に呼び出されます (複数の場合でも) 複数のファイルが 1 つを定義している場合は何度も)。セットアップに役立ちます。控えめに使用してください。
試してみてください
運動#go.m3.l1.e1
試行回数: 0読み込み中…
a+b を返す関数 sum(a, b int) int を定義し、main で (3, 4) を使用して呼び出します。
エディターを読み込み中…
ヒントを表示
共有型: `(a, b int)`。戻り値の型は括弧の後に入ります。
3 回の試行後に解決策が利用可能になります
運動#go.m3.l1.e2
試行回数: 0読み込み中…
「ciao <name>」を出力するgreet(name string) (戻り値なし)を定義します。
エディターを読み込み中…
ヒントを表示
関数が何も返さない場合、戻り値の型はありません。
3 回の試行後に解決策が利用可能になります
Quiz#go.m3.l1.e3
準備完了Go ではパラメーターの型はどこに置かれますか?
Go
func f(? ?) {}要約
func name(param type, ...) returnType { ... }。- 名前の後に入力します。同じ型の連続したパラメータ → 宣言は一度だけです。
- 大文字の頭文字 = エクスポート済み。 小文字 = パッケージに対してプライベート。
- 関数は第一級です (割り当て可能、渡せる)。
mainおよびinitは、特別なセマンティクスを持つ予約名です。