:= の短縮宣言
関数の中では := を使う
前のレッスンの宣言を、もっと短く書けます。
Go
var name string = "きのこ図鑑"
name := "きのこ図鑑" // 同じ意味:= は「宣言して、同時に値を入れる」記号です。var も型も要りません。型は値から決まります。
実際の Go のコードでは、関数の中はほとんどが := です。var を見かけるのは、後で説明する2つの場面くらいになります。
:= が使えない場所
関数の外では使えません。
Go
package main
name := "きのこ図鑑" // エラー
var name = "きのこ図鑑" // これならよい
func main() {
price := 1200 // ここは使える
}関数の外は宣言だけを書く場所なので、var const func type のどれかで始める決まりになっています。
var を使う2つの場面
1つ目は、値をまだ決めないとき。
Go
var total int // 0 から始めたい:= は値が要るので、この書き方はできません。
2つ目は、型を自分で選びたいとき。
Go
price := 1200 // int になる
var price float64 = 1200 // float64 にしたい小数を扱う予定があるなら、最初から float64 で宣言しておきます。
:= は少なくとも1つが新しい変数
複数を同時に宣言できます。
Go
name, price := "きのこ図鑑", 1200このとき、左側の少なくとも1つが新しい変数であれば := を使えます。
Go
name, price := "きのこ図鑑", 1200
name, stock := "中古スマホ", 3 // name は上書き、stock は新規。これでよい全部が既にある変数だと、:= は使えません。その場合は = だけを使います。この規則は、第4章で複数の戻り値を受けるときに効いてきます。
この回の練習では
name := "きのこ図鑑" と stock := 3 を宣言し、fmt.Println(name, "残り", stock, "点") で在庫を表示します。今回は在庫が3点の表示だけを作ります。
要件
nameとstockを:=で宣言する- 2つの変数を使い、例の在庫メモを出力する
ヒント
編集 ゆめさく編集部