step01
$ go build -v -o test
というコマンドラインがあって、「この-v
と-o
というオプションが何のか」というのが気になったので調べた。
結果は以下。
オプション | 意味 |
---|---|
-v | コンパイルされるパッケージ名を出力 |
-o | 出力ファイル名を指定 |
-o
オプションは、出力ファイル名を指定。指定しないとbuild対象を含むベースのディレクトリの名前となる。
パッケージ名は、go.mod
に書いてあるものが出力されるのかな?
step02
変数の宣言
var category string
その変数にコマンドプロンプトから値を受け付けて、変数に格納する
fmt.Scan(&category)
ポインターを使う。
ポインターについてはこの辺もあわせてみるとよい。
Go言語におけるポインタのアンパサンド(&)とアスタリスク(*)の違い - Qiita
その他として、Printlnは改行して表示、Printfは改行なしで表示。
step03
構造体を定義する。
type Item struct { Category string Price int }
代入方式として、:=
っていうのがある。
item := inputItem()
関数を呼び出していて、その戻り値の型(今回で言うとItem)をそのままitemに使うという意味。
以下のようにも書き換えられるが、省略形のほうがかっこいいよね。
var item Item item = inputItem()
参考サイト
go command - github.com/gophersjp/go/src/cmd/go - pkg.go.dev