Tbpgr Blog

元エンジニア 人事 tbpgr(てぃーびー) のブログ

Go | If with a short statement

概要

If with a short statement.

Go 公式の Tour 22番目の項目について。
http://go-tour-jp.appspot.com/#22

Go は、 if 文の宣言に任意のステートメントの実行を含めることが出来ます。
例えば、ブロック内のみで利用する変数の初期化など。

サンプルコード

package main

import (
	"fmt"
	"math/rand"
	"time"
	"strconv"
)

func main() {
	rand.Seed(time.Now().UnixNano())
	randoms := []int{rand.Intn(10), rand.Intn(10), rand.Intn(10)}

	for _, n := range randoms {
		if isEven := (n % 2 == 0) ; isEven {
			fmt.Printf("isEven = %s\n", strconv.FormatBool(isEven))
		}
		// スコープ外のため、エラーが発生する「undefined: isEven」
		// fmt.Println(isEven)
	}
}

出力

3回実行してみた。

$ go run if_variable.go
isEven = true
$ go run if_variable.go
isEven = true
isEven = true
isEven = true
$ go run if_variable.go
isEven = true
isEven = true