Go入門:文法のきほん
Goとは
この回でやること
Goの構文と実行ファイルの特徴を、サービスを配る場面から読み解きます。
- 読む 約 7 分
- 最後にクイズ 1 問
少ない部品で、長く読めるコードを作る
Go は2009年に Google が公開した言語です。大人数で大きなプログラムを保守するとき、書き方が人ごとに違うと、読む時間が増えます。Go は言語の機能を絞り、同じ仕事を似た形で書きやすくしています。継承や例外はなく、ループの構文は for の1種類です。
このコースでは、フリマアプリ fleama の API を題材にします。起動時の表示から始め、商品データを扱い、最後は応答を返すサーバーへ進みます。既に動いているサービスの処理を移す場面では、次に読む人が処理を追えることも大切です。
Go を選ぶと何が変わるか
Go は go キーワードで並行する処理を開始できます。複数のリクエストを扱うサーバーで使います。ただし、同時に動かせば必ず速くなるわけではありません。保存先を共有する処理では待ちが増えることもあります。並行処理の詳しい書き方は後の章で扱います。
Go はソースコードを機械が実行する形へコンパイルします。go build で作った実行ファイルには、自分のコードと通常使う標準ライブラリの処理が入ります。Go の実行環境やソースコードを配布先へ別に置かずに済むことが、サーバーへ運ぶ際の利点です。外部のライブラリや OS の条件まで何も考えなくてよい、という意味ではありません。
プレーンテキスト
Node.js 実行環境とアプリのファイルを用意する
Go 配布先に合う実行ファイルを用意する最初に見ておく関数の形
Go
func describeGo(topic string) string {
if topic == "binary" {
return "1つの実行ファイルにまとまります"
}
return "分かりません"
}func は関数の宣言です。引数の型は名前の後ろに置くので、topic string と書きます。引数の後の string は戻り値の型です。if で条件を調べ、条件に合う文字列を return で返します。ここでは呼び出し方を覚えるより、型の置き場所と関数が返す値を読み取れれば十分です。
例題で確かめる
在庫通知の小さなサービスを Go で配りたいとします。担当者は配布先へ Go の実行環境を追加できません。go build で配布先向けの実行ファイルを作れば、通常はそのファイルを配置して起動できます。一方、通知を同時に100件処理したいだけで go を付けても、保存先が1件ずつしか更新できなければ待ちます。配布のしやすさと並行処理は別の性質として判断します。