ABOUT ME

금융을 하다 어쩌다보니 system architect가 되어 하루하루 고군분투하는 중. 매일이 공부의 연속이라 아주 조금씩이라도 기록해보고자 합니다.

Today
Yesterday
Total
  • Go 언어의 변수와 상수 선언: var, const와 iota의 활용
    CS 공부/Go 언어 2025. 1. 5. 14:32

    Go 언어에서는 변수와 상수를 선언하는 방법이 간단하면서도 명확하다. 이 글에서는 변수와 상수 선언 방법, 그리고 Go만의 특별한 키워드인 iota의 활용법을 정리한다.


    1. 변수 선언

    Go 언어에서 변수는 var 키워드를 사용해 선언한다. 변수의 자료형은 명시적으로 선언하거나, 초기값을 기준으로 컴파일러가 추론할 수 있다.

    1.1 기본적인 변수 선언

    var x int                 // 정수형 변수 선언
    var y string              // 문자열 변수 선언
    var age int = 10          // 초기값을 가진 정수형 변수 선언
    var name string = "maria" // 초기값을 가진 문자열 변수 선언

    1.2 짧은 변수 선언

    Go에서는 := 기호를 사용하여 짧게 변수를 선언할 수 있다. 이 방식은 주로 함수 내부에서 사용된다.

    x := 42
    name := "Go"
    • :=는 var와 자료형을 생략하고도 변수를 선언할 수 있게 한다.
    • 하지만 함수 외부에서는 사용할 수 없다.

    1.3 여러 변수 동시에 선언

    여러 변수를 한 번에 선언할 때는 괄호를 사용할 수 있다.

    var (
        x int
        y string
        z bool
    )

    또는 한 줄에서 여러 변수를 동시에 초기화할 수도 있다.

    x, y, z := 1, "hello", true

    2. 상수 선언

    상수는 const 키워드를 사용해 선언한다. 상수는 값을 변경할 수 없으며, 주로 프로그램에서 변경되지 않는 값을 표현할 때 사용된다.

    2.1 기본적인 상수 선언

    const pi = 3.14
    const name = "GoLang"

    2.2 iota 활용

    iota는 Go의 상수 선언에서 사용되는 특별한 키워드다. 열거형 값을 생성할 때 유용하다.

    const (
        a = iota // 0
        b        // 1
        c        // 2
    )
    • iota는 0부터 시작하며, 각 상수가 선언될 때마다 1씩 증가한다.
    • 같은 블록 내에서는 값이 자동으로 증가하기 때문에 반복적인 코드를 줄일 수 있다.

    3. 변수와 상수의 특징

    3.1 문자열은 불변

    Go에서 문자열은 수정할 수 없다. 문자열의 값을 변경하려면 새로운 문자열을 생성해야 한다.

    s := "hello"
    // s[0] = 'H'  // 컴파일 에러
    s = "Hello"    // 새로운 문자열로 교체

    3.2 타입 추론

    Go는 초기값을 기준으로 변수의 타입을 추론할 수 있다. 따라서 자료형을 명시적으로 쓰지 않아도 된다.

    var x = 10    // int로 추론
    var y = "Go"  // string으로 추론

    요약

    • 변수는 var 또는 :=를 사용해 선언한다.
      • := : (var + "변수 타입")의미
    • 상수는 const로 선언하며, 변경되지 않는 값을 표현할 때 사용된다.
      • Const : (const + :) 의미. 즉, (const var + "변수 타입"). Var, : 필요없이 그냥 =으로 대입 가능
    • iota는 열거형 값을 정의할 때 유용하다.
    • 문자열은 불변이며, 타입은 초기값에 따라 자동으로 추론된다.

    Go 언어의 변수와 상수 선언은 간단하지만 강력한 기능을 제공한다. 다음 글에서는 Go 언어의 반복문과 제어문에 대해 알아보겠다.

Designed by Tistory.