가장 빨리 만나는 Go 언어 핵심 정리

저작권 안내
  • 책 또는 웹사이트의 내용을 복제하여 다른 곳에 게시하는 것을 금지합니다.
  • 책 또는 웹사이트의 내용을 발췌, 요약하여 강의 자료, 발표 자료, 블로그 포스팅 등으로 만드는 것을 금지합니다.

핵심 정리

이재홍 http://www.pyrasis.com 2014.12.17 ~ 2015.02.07

연산자 우선순위와 괄호

연산자는 우선순위를 가집니다. 단, 우선순위에 상관 없이 계산 순서를 바꾸려면 ( ) (괄호)를 사용합니다.

a := (8 + 10) / 2
fmt.Println(a) // 9
사용하지 않는 패키지가 있을 때

Go 언어는 패키지를 가져온 뒤 사용하지 않으면 컴파일 에러가 발생합니다. 따라서 패키지 이름 앞에 _ (밑줄 문자)를 지정하면 컴파일 에러가 발생하지 않습니다.

import _ "fmt"
if 조건문 안에서 함수 사용

Go 언어는 if 조건문 안에서 함수를 사용할 수 있습니다.

if b, err := ioutil.ReadFile("./hello.txt"); err == nil {
	fmt.Printf("%s", b)
}
Go 언어의 반복문

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)
}
switch에서 조건식으로 분기

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 미만")
}
fallthrough

특정 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 공유는 허용합니다.

Published

2015-06-01