자바스크립트를 활성화 해주세요

Tucker의 Go 언어 프로그래밍 10장 요약

 ·  ☕ 1 min read

Tucker의 Go 언어 프로그래밍스터디 요약 노트입니다.

10장. switch문

switch문의 Go 언어에서의 특징만 확인해보자.

  1. 각 조건 단위의 종료를 위해 break를 쓸 필요가 없다.
  2. 대신 기존의 break 생략을 fallthrough 키워드로 대체한다.
  3. case에서 값 비교 뿐만 아니라 조건문 검사가 가능하다.
  4. 대상 값 선언 전에 초기문을 사용할 수 있다.

break 생략과 fallthrough

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package main

import "fmt"

func main() {
	switch age := getMyAge(); age {
    case 9:
        fallthrough
    case 10:
        fallthrough
    case 11:
        fmt.Println("You need to be at least 12-years-old to sign up.")
    case 12:
        fallthrough
    case 13:
        fmt.Println("You need parent's approval to sign up.")
    default:
        fmt.Println("You're ok to sign up.")
	}
}

func getMyAge() int {
    return 9
}
$ ./go_switch_fallthrough
You need to be at least 12-years-old to sign up.

case에서 조건 검사

위에서는 fallthrough 사용 예시를 보여주기 위해 11세 이하 조건을 간략하게 9, 10, 11만 선택하게 했다. default가 14세 이상이기 때문에 입력 값이 0~8이 들어오면 버그가 발생한다. Go에서는 case에서 조건 검사가 가능하니, 이를 활용해보자.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
package main

import "fmt"

func main() {
	switch age := getMyAge(); true {
	case age < 12:
		fmt.Println("You need to be at least 12-years-old to sign up.")
	case 12 <= age && age < 14:
		fmt.Println("You need parent's approval to sign up.")
	default:
		fmt.Println("You're ok to sign up.")
	}
}

func getMyAge() int {
	return 8
}
$ ./go_switch_case_cond
You need to be at least 12-years-old to sign up.

저자 강의


JaeSang Yoo
글쓴이
JaeSang Yoo
The Programmer

목차