Search

[Go 기초] [#4] 변수와 상수

요약
변수와 상수의 개념
썸네일
https://noticon-static.tammolo.com/dgggcrkxq/image/upload/v1566913552/noticon/xjarxsfmmcouhih40val.png
작성일자
2024/03/31 13:43
수정일자
2024/05/03 12:29
스택
Go
카테고리
기초
태그
변수
상수
데이터 타입

Go언어의 변수

변수와 상수는 프로그래밍에서 기본이 되는 핵심적인 개념입니다.
Go 언어는 정적 타입 언어로써 사용할 변수의 형식에 따라서 코드 작성자가 직접 타입을 지정해주어야 하는 언어입니다.
이번 강의에서는 Go 언어에서 변수와 상수를 선언하고 활용하는 방법에 대해 알아보겠습니다.
예제에 사용된 코드들은 모두 참조란의 깃허브 링크에서도 확인하실 수 있습니다.

변수 (Variable)

변수는 데이터를 보관하고 필요에 따라 변경할 수 있는 메모리 공간을 나타냅니다.
Go 언어에서 변수는 var 키워드로 선언하며, 필요에 따라 초기값을 할당할 수 있습니다.

선언 방법

예제를 통해 어떻게 사용하는지 알아보도록 하겠습니다.
이하의 예제는 number 라는 이름을 가지는 정수형 변수를 선언하고 사용하는 예제입니다.
package main import "fmt" func main() { // #1 기본형 선언문 // // 기본적으로 변수는 이렇게 선언합니다. // var <변수 이름> <자료형> var number int // number 변수에 10이라는 값을 할당합니다. number = 10 // number에 무슨 값이 들어있는지 출력합니다. fmt.Println(number) }
Go
복사

단축 선언 연산자 (Short Assignment Statement)

변수 선언을 할때는 아래 예제처럼 짧은 형태의 단축 선언 연산자 := 를 사용할 수도 있습니다.
단축 선언 연산자의 경우 함수 내에서 지역 변수를 선언 및 초기화하고 변수의 범위를 한정지을 수 있는 좋은 수단입니다.
이때는 var 키워드처럼 변수 타입을 따로 지정하지 않아도 우항의 값 유형에 따라서 추론하게 됩니다.
package main import "fmt" func main() { // #2 단축 선언 연산자 (Short Assignment Statement) // // 변수는 이렇게도 선언이 가능합니다. // <변수 이름> := <값> number := 10 // number 변수에 10이라는 값을 할당합니다. number = 20 // number에 무슨 값이 들어있는지 출력합니다. fmt.Println(number) }
Go
복사

자료형(Data Type)

Go에서 변수가 가질 수 있는 자료형은 크게 숫자, 논리, 문자열 이렇게 3개로 나눌 수 있습니다.
Go의 자료형은 강의에서 다루기엔 매우 다양하기 때문에 치트시트 링크로 대체합니다.

상수 (Constant)

상수는 변수의 한 종류로써 프로그램 실행 중 변경되지 않는 값을 나타내는 데 사용됩니다.
Go 언어에서는 const 키워드를 사용하여 상수를 선언하며, 선언과 동시에 값을 할당해야 합니다.

선언 방법

예제를 통해 어떻게 사용하는지 알아보도록 하겠습니다.
package main import "fmt" func main() { // 상수는 이렇게 선언합니다. // 상수는 중간에 변경할 수 없기 때문에 선언할때 값을 반드시 지정해야 합니다. // const <변수 이름> <변수 타입> = <값> const number int = 10 // 이 다음 줄처럼 상수를 변수처럼 값을 변경하려고 하면 참조 오류가 발생합니다. // number = 20 // number에 무슨 값이 들어있는지 출력합니다. fmt.Println(number) }
Go
복사

열거형 (iota)

추가로 상수를 사용할 때 다른 언어에서 열거형(enumeration) 이라고 부르는 기능을 iota 키워드를 이용하여 지원합니다.
열거형을 잘 사용하면 프로그램에서 반복될 수 있는 값을 가독성이 좋은 상수로 관리할 수 있고 변환 과정에 의한 오류를 줄일 수 있다는 장점이 있습니다.
iota 는 “극히 적은 양” 이라는 의미로써 Go 언어에서는 0부터 시작하는 작은 크기의 열거형을 의미합니다.
예를 들어, 월요일부터 일요일까지의 값을 열거형으로 선언하여 사용하고 싶다면 이렇게 하면 됩니다. 아래 예시에서 Monday 부터 Sunday 까지의 상수들은 순차적으로 0부터 6까지의 값을 가지게 됩니다.
package main import "fmt" const ( Monday = iota // Monday = 0 Tuesday // Tuesday = 1 Wednesday // Wednesday = 2 Thursday // Thursday = 3 Friday // Friday = 4 Saturday // Saturday = 5 Sunday // Sunday = 6 // 무언가 추가하고 싶다면 더 할수도 있습니다. ) func main() { fmt.Println("Monday:", Monday) fmt.Println("Tuesday:", Tuesday) fmt.Println("Wednesday:", Wednesday) fmt.Println("Thursday:", Thursday) fmt.Println("Friday:", Friday) fmt.Println("Saturday:", Saturday) fmt.Println("Sunday:", Sunday) }
Go
복사
iota 와 연산자를 조합하면 단순한 정수형뿐만 아니라 다양한 형태의 열거된 상수를 선언하는 것도 가능합니다.
package main import "fmt" const ( NotStarted float64 = iota * 0.2 Started AlmostHalf OverHalf AlmostDone Done ) func main() { fmt.Printf("NotStarted: %.2f\n", NotStarted) fmt.Printf("Started: %.2f\n", Started) fmt.Printf("AlmostHalf: %.2f\n", AlmostHalf) fmt.Printf("OverHalf: %.2f\n", OverHalf) fmt.Printf("AlmostDone: %.2f\n", AlmostDone) fmt.Printf("Done: %.2f\n", Done) }
Go
복사

끝마치며

이번 시간에는 Go 언어에서 변수와 상수를 할당하고 사용하는 방법에 대해서 알아봤습니다.
다음 강의에서는 Go 언어에서 사용할 수 있는 기본적인 연산자들에 대한 강의를 진행하겠습니다.
감사합니다. 다음 강의에서 만나요!
강의 목록

참조