0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Go言語入門】-ステートメント編-

Posted at

はじめに

今回はステートメントについてまとめておきます。

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などはよく使いそうなので覚えておきたいです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?