10.1 swtich문 동작원리


swtich 키워드 다음에 비굣값이 온다. 첫 번쨰 case부터 검색한다. 만약 해당 case가 조건에 맞으면 해당 case를 실행하고 종료된다. 같은 값이 없을 때 default로 설정한 것이 실행된다. if , else이 길어질 경우 swtich가 유용하다.

10.2.1 한번에 여러값 비교


하나의 case는 하나 이상의 값을 비교할 수 있다. 각 값은 쉼표로 구분된다.

swtich day {
	case "monday", "sunday":
	fmt.println("월요일, 일요일")
}

10.2.2 초기문


if문과 같이 조건문과 초기문 입력이 가능하다. 사용법은 if문과 같다.

10.3 const 열거값과 스위치


const 열거값에 따라 수행되는 로직을 변경할 때 스위치 문을 주로 사용한다.

type ColorType int
const (
	RED ColorType = iota
	BLUE ColorType
)

func switchToColorString(color ColorType) string{
	switch color {
		case RED:
			return "RED"
	}
}

10.5 break와 fallthrough 키워드

일반적으로 다른 언어에서는 스위치문의 각 case 종료시 break 문을 사용해야 다음 case로 넘어가지 않는다. 하지만 Go는 자동적으로 해당 case가 실행되면 종료가 된다.
그런데 만약 하나의 case가 실행되고 다른 case도 함께 실행되기 원한다면 fallthrough 키워드를 사용하면 다음 case까지 같이 실행된다.