Go入門:文法のきほん
packageとmain
この回でやること
package main、main関数、importの役割を起動時の表示から確かめます。
- 読む 約 7 分
- 最後にクイズ 1 問
プログラムの起点は決まっている
Go で fleama の起動メッセージを表示するファイルを読みます。上から順に、どのまとまりに属するか、何を使うか、起動時に何をするかが書かれています。
Go
package main
import "fmt"
func main() {
fmt.Println("fleama-go を起動します")
}このコードを実行すると、画面に「fleama-go を起動します」と1行表示します。fmt.Println は引数の文字列を出力して改行する関数です。
package main
Go のソースファイルは package の宣言から始まります。これはファイルが属するまとまりの名前です。package main は実行できるプログラムを作るための名前です。package shop のような別の名前なら、他のコードから使う部品になり、単体のプログラムとしては起動しません。
プレーンテキスト
package main 実行するプログラム
package shop 他から使う部品ファイル名を main.go にするだけでは、実行の起点にはなりません。大切なのは宣言されたパッケージと関数の組み合わせです。
func main()
func は関数の宣言です。main パッケージの main 関数を、プログラムが起動するときに呼び出します。上の例では関数内の fmt.Println が実行されます。start や run という名前の関数を用意しても、起点として自動では呼ばれません。
import と使わない宣言
import "fmt" は標準ライブラリの fmt パッケージを使う宣言です。標準ライブラリは Go に付属する機能の集まりで、fmt は文字の表示などを扱います。コードから fmt.Println を消して import "fmt" だけ残すと、Go は使っていない import をエラーとして報告します。
プレーンテキスト
"fmt" imported and not usedそのときは、不要になった import を削除します。使わない宣言を残せないので、ファイルを読む人は各 import が何の処理に使われるかを確かめやすくなります。
例題で確かめる
配送状況を表示する status.go に package main と func main() を書き、関数内で fmt.Println("配送中") を呼びます。import "fmt" があれば、起動時に「配送中」と表示します。関数名だけを showStatus に変えると、起点の main 関数がなくなるため実行できません。関数名を戻せば、ファイル名が status.go でも起動できます。