저작권 안내
- 책 또는 웹사이트의 내용을 복제하여 다른 곳에 게시하는 것을 금지합니다.
- 책 또는 웹사이트의 내용을 발췌, 요약하여 강의 자료, 발표 자료, 블로그 포스팅 등으로 만드는 것을 금지합니다.
핵심 정리
이재홍 http://www.pyrasis.com 2014.12.17 ~ 2015.02.07
연산자 우선순위와 괄호연산자는 우선순위를 가집니다. 단, 우선순위에 상관 없이 계산 순서를 바꾸려면 ( ) (괄호)를 사용합니다.
a := (8 + 10) / 2
fmt.Println(a) // 9
Go 언어는 패키지를 가져온 뒤 사용하지 않으면 컴파일 에러가 발생합니다. 따라서 패키지 이름 앞에 _ (밑줄 문자)를 지정하면 컴파일 에러가 발생하지 않습니다.
import _ "fmt"
Go 언어는 if 조건문 안에서 함수를 사용할 수 있습니다.
if b, err := ioutil.ReadFile("./hello.txt"); err == nil {
fmt.Printf("%s", b)
}
Go 언어의 반복문은 for만 있습니다. 반복문에 조건식을 지정하지 않으면 무한 루프가 됩니다. 이때는 if 조건문과 break를 사용하여 빠져나옵니다.
반복문과 레이블Go 언어의 break, continue에는 레이블을 지정할 수 있습니다.
Loop: // Loop 레이블을 지정
for i := 0; i < 3; i++ { // 반복문 1
for j := 0; j < 3; j++ { // 반복문 2
if j == 2 { // j가 2일 때
break Loop // 중첩된 반복문을 빠져나옴
}
fmt.Println(i, j)
}
}
fmt.Println("Hello, world!")
Loop: // Loop 레이블을 지정
for i := 0; i < 3; i++ { // 반복문 1
for j := 0; j < 3; j++ { // 반복문 2
if j == 2 { // j가 2일 때
continue Loop // 아래 fmt.Println을 실행하지 않고 반복문 1부터 이어서 실행
}
fmt.Println(i, j)
}
}
fmt.Println("Hello, world!")
반복문에서 변수를 여러 개를 처리하려면 병렬 할당을 사용해야 합니다.
for i, j := 0, 0; i < 10; i, j = i+1, j+2 {
fmt.Println(i, j)
}
Go 언어의 switch는 조건식으로 분기할 수 있습니다.
i := 7
switch { // case에 조건식을 지정했으므로 판단할 변수는 생략
case i >= 5 && i < 10: // i가 5보다 크거나 같으면서 10보다 작을 때
fmt.Println("5 이상, 10 미만")
case i >= 0 && i < 5: // i가 0보다 크거나 같으면서 5보다 작을 때
fmt.Println("0 이상, 5 미만")
}
특정 case의 문장을 실행한 뒤 다음 case의 문장을 실행하고 싶을 때는 fallthrough 키워드를 사용합니다.
i := 3
switch i { // 값을 판단할 변수 설정
case 4: // 각 조건에 일치하는
fmt.Println("4 이상") // 코드를 실행합니다.
fallthrough
case 3: // 3과 변수의 값이 일치하므로
fmt.Println("3 이상") // 이 부분을 실행
fallthrough // fallthrough를 사용했으므로 아래 case를 모두 실행
case 2:
fmt.Println("2 이상") // 실행
fallthrough
case 1:
fmt.Println("1 이상") // 실행
fallthrough
case 0:
fmt.Println("0 이상") // 실행, 마지막 case에는 fallthrough를 사용할 수 없음
}
저작권 안내
이 웹사이트에 게시된 모든 글의 무단 복제 및 도용을 금지합니다.- 블로그, 게시판 등에 퍼가는 것을 금지합니다.
- 비공개 포스트에 퍼가는 것을 금지합니다.
- 글 내용, 그림을 발췌 및 요약하는 것을 금지합니다.
- 링크 및 SNS 공유는 허용합니다.