CS 공부/Go 언어

Go 언어의 변수와 상수 선언: var, const와 iota의 활용

0gineer 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 언어의 반복문과 제어문에 대해 알아보겠다.