計算機科学のブログ

which code runs next - Conditionals and Loops - Blocks and variable scope

Head First GoJay McGavren(著)、O’Reilly Media)の Chapter 2(which code runs next? Conditionals and Loops)、p.53(Exercise)の解答を求めてみる。

コード

sample.go

package main

import "fmt"

var a = "a"

func main() {
	a = "a"
	b := "b"
	if true {
		c := "c"
		if true {
			d := "d"
			fmt.Println(a)
			fmt.Println(b)
			fmt.Println(c)
			fmt.Println(d)
		}
		fmt.Println(a)
		fmt.Println(b)
		fmt.Println(c)
		// fmt.Println(d)
	}
	fmt.Println(a)
	fmt.Println(b)
	// fmt.Println(c)
	// fmt.Println(d)
}

入出力結果(Terminal, Zsh)

% go run ./sample.go 
a
b
c
d
a
b
c
a
b
%