- Go언어에서는 do나 while반복문이 존재하지 않고, 좀 더 일반화 된 go와 switch가 존재함.
- if와 switch는 선택적으로 for 같은 초기화 구문을 받을 수 있음
- break과 continue 구문들은 선택적으로 어느 것을 멈추거나 계속할지 식별하기 위해 Label을 받을 수 있음
- 또한 type switch, multiple communication multiplexer, select의 새로운 제어 구조가 go에 포함되어 있음
- 문법에서 괄호는 필요하지 않으며, body는 항상 중괄호로 구분해야 함
If
if x > 0 {
return y
}
-
중괄호를 의무적으로 사용해야 하기 때문에 다중 라인에서 if 구문들이 간단하게 작성됨.
-
어차피 일반적으로 코드 작성 방법에서도 위 방법을 권장함
-
if와 switch가 초기화 구문을 허용하므로 지역변수를 설정하기 위해 사용된 초기화 구문을 흔히 볼 수 있음.
if err := file.Chmod(0664); err != nil {
log.Print(err)
return err
}
- go 여러 라이브러리에서 만약 if 상태에 의해 다음 구문으로 넘어가지 않도록 if문의 body가 break, continue, goto, return중 하나로 끝날 때 불필요한 else는 생략됨.
f, err := os.Open(name)
if err != nil {
return err
}
codeUsing(f)
- 다음과 같이 일련의 에러 조건들을 반드시 검사해야 하는 일반적인 상황에서, 발생하는 에러 케이스들은 return 구문에서 종료하는 경향이 있기 때문에 else구문이 필요하지 않음.
f, err := os.Open(name)
if err != nil {
return err
}
d, err := f.Stat()
if err != nil {
f.Close()
return err
}
codeUsing(f, d)