はじめに
今回はステートメントについてまとめておきます。
if文
num := 6
if num == 6 {
fmt.Println("OK")
}
// 出力結果
OK
elseあり
num := 6
if num == 7 {
fmt.Println("OK")
} else {
fmt.Println("NG")
}
// 出力結果
NG
else if
num := 6
if num == 7 {
fmt.Println("OK if")
} else if num == 6 {
fmt.Println("OK else if")
} else {
fmt.Println("NG")
}
// 出力結果
OK else if
&&
x, y := 10, 20
if x == 10 && y == 20 {
fmt.Println("OK")
}
// 出力結果
OK
||
x, y := 10, 20
if x == 10 || y == 10 {
fmt.Println("OK")
}
// 出力結果
OK
for文
for i := 0; i < 5; i++ {
fmt.Println(i)
}
// 出力結果
0
1
2
3
4
for文中にcontinue
を記載すると処理が終わり、次のループに入ります。
for i := 0; i < 5; i++ {
if i == 2 {
continue
}
fmt.Println(i)
}
// 出力結果
0
1
3
4
for文中にbreak
を記載するとその時点で処理が終わります。
for i := 0; i < 5; i++ {
if i == 2 {
break
}
fmt.Println(i)
}
// 出力結果
0
1
range
array := []string{"Taro", "Ken", "Yuki"}
for i, v := range array {
fmt.Println(i, v)
}
// 出力結果
0 Taro
1 Ken
2 Yuki
中身だけ取り出したい場合
array := []string{"Taro", "Ken", "Yuki"}
for _, v := range array {
fmt.Println(v)
}
// 出力結果
Taro
Ken
Yuki
switch文
name := "Taro"
switch name {
case "Taro":
fmt.Println("Taro")
case "Ken":
fmt.Println("Ken")
case "Yuki":
fmt.Println("Yuki")
}
// 出力結果
Taro
defer
defer fmt.Println("defer")
fmt.Println("Hello")
// 出力結果
Hello
defer
Stacking defers
fmt.Println("Hello")
defer fmt.Println("1")
defer fmt.Println("2")
defer fmt.Println("3")
// 出力結果
Hello
3
2
1
log
log.Println("log")
// 出力結果
2025/01/05 01:42:24 log
Fatalはそれ以降の処理を実行しない
(以下だと、Hello
は出力されない)
log.Fatalln("Fatal")
fmt.Println("Hello")
// 出力結果
2025/01/05 01:43:24 Fatal
エラーハンドリングの例
err := os.Chdir("test")
if err != nil {
log.Fatalln("Error")
}
// 出力結果
2025/01/05 01:55:34 Error
panic
func test2() {
panic("Error")
}
func test() {
test2()
}
func main() {
test()
}
// 出力結果
panic: Error
goroutine 1 [running]:
main.test2()
/Users/go-app/hello.go:12 +0x2c
main.test()
/Users/go-app/hello.go:16 +0x1c
main.main()
/Usersn/go-app/hello.go:20 +0x1c
recover
func test2() {
panic("Error")
}
func test() {
defer func() {
fmt.Println(recover())
}()
test2()
}
func main() {
test()
}
// 出力結果
Error
おわりに
今回はこのあたりまでまとめました。
logなどはよく使いそうなので覚えておきたいです。