Golang_정리하기-1

[Go tutorial] Go 정리하기 - 1

Go-tour 참조

  • 익스포트

    • Go 에서는 첫 문자가 대문자로 시작하면 특정 패키지를 사용하는 곳에서 접근할 수 있는 exported name이 됨
  • 함수

    • Go 는 코드를 왼쪽부터 자연스럽게 읽기 위해 매개변수 타입은 변수명 뒤에 명시.

    • 두 개 이상의 매개변수가 같은 타입일 때, 같은 타입을 취하는 마지막 매개변수에만 타입을 지정할 수 있음.

      1
      2
      3
      4
      5
      x int, y int

      #를 아래와 같이도 사용 가능

      x, y int
    • 하나의 함수는 여러 개의 결과를 반환할 수 있음.

      1
      2
      3
      func swap(x, y string) (string, string) {
      return y, x
      }
  • 변수

    • var 을 통해 변수를 선언.

    • 변수 선언과 함꼐 초기화 가능, 초기화를 하는 경우 타입 생략 가능. 이 경우, 초기화하고자 하는 값에 따라 타입이 결정됨.

      1
      var a, b, c int = 1, 2, 3
    • 함수 내에서 := 을 사용하면 var와 명시적인 타입을 생략할 수 있음.

  • 상수

    • const 키워드와 함께 변수처럼 선언.

    • 상수는 문자, 문자열, boolean, 숫자 타입 중의 하나가 될 수 있음

    • 숫자형 상수는 정밀한 값을 표현할 수 있음. Go-tour 사이트에서 제공하는 예제를 이해하기 위해서는 Go의 << 와 >> 연산자의 이해가 필요하다.

    • <<, >> 연산자에 대해

      • << 와 >> 연산자는 비트 이동 연산자로 Left shift, Right shift 라고 함.
      • Left shift 는 현재 값의 비트를 주어진 값만큼 왼쪽으로 Right shift는 현재 값의 비트를 주어진 값만큼 오른쪽으로 옮깁니다.
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        const (
        a = 1
        b = a << 1
        )

        func main() {
        fmt.Println(a) ### 1 출력
        fmt.Printf("%08b\n", a) ### 00000001 출력
        fmt.Println(b) ### 2 출력
        fmt.Printf("%08b", b) ### 00000010 출력
        }
  • 반복문 for

    • Go 에는 반복문으로 for 하나만 존재.

    • 조건문만 표현해서 루프를 표현 가능.

      1
      2
      3
      4
      5
      6
      7
      func main() {
      sum := 1
      for sum < 1000 {
      sum += sum
      }
      fmt.Println(sum)
      }
    • 위와 같이 표현하면 while을 사용하듯 for을 사용할 수 있다.

    • 조건문을 생략하는것으로 무한 루프를 만들 수 있다.

      1
      2
      3
      4
      func main() {
      for {
      }
      }
  • 조건문 if

    • 반복문과 마찬가지로 실행문을 위한 { } 만 필요.

    • for 처럼 조건문 앞에 문장을 실행할 수 있음.

      1
      2
      3
      4
      5
      6
      func pow(x, n, lim float64) float64 {
      if v := math.Pow(x, n); v < lim {
      return v
      }
      return lim
      }
    • 위의 예를 보면, v < lim 을 통한 조건문 앞에 v := math.Pow(x,n) 을 실행했다.

    • 이렇게 선언된 변수(위에서는 v)는 if 안쪽 범위에서만(else 블럭 안에서도 가능) 사용할 수 있다.

#

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×