반응형


Go Lang에서 변수(variable)란 입력된 값을 가진 저장공간을 의미합니다.

Go Lang에서는 변수 선언을 통해 변수명을 부여할 수 있습니다.

Go Lang에서 변수 선언은 'var'를 통해서 이루어집니다.

 

var a int

 

위의 예제에서 a는 변수명, int는 변수의 타입을 의미합니다.

 

Go Lang에서 사용되는 변수 타입들에 대해 우선 알아볼 필요가 있습니다.


1. 문자열(string)

문자열은 텍스트 문자를 나타냅니다. 코드 내에서 문자열을 직접 정의하고 사용할 수 있습니다.

"Hello World"와 같이 주로 ""를 사용해서 문자열을 표현합니다

 

2. 정수(integer)

정수형 문자열은 숫자를 나타냅니다. int로 나타내는 정수형 타입에서는 3.14와 같은 부동 소수점 숫자를 사용할 수 없어 별도로 정의합니다.

 

var a int 의 형식으로 나타내며 int8, int16, int32, int64 / uint8, uint16, uint32, uint64 등으로 사용합니다 (u는 음수 미포함)
int 처럼 뒤에 비트값을 따로 지정하지 않으면 해당 운영체제의 비트값을 따라갑니다. (64비트의 경우 int64)

 

3. 부동 소수점(float)

float로 부동 소수점 숫자 타입을 나타냅니다. 정수가 아닌, 소수부를 가진 숫자 값을 저장하며 주로 float32, 64을 사용하며 뒤의 숫자는 비트값을 의미합니다.

 

4. 참과 거짓(boolean)

어떠한 값의 참과 거짓을 가려내기 위한 타입을 나타냅니다. 주로 조건문에서 사용되며 이 경우 어떠한 조건이 참 혹은 거짓인 경우에만 특정한 코드를 실행할 수 있도록 합니다.

 

5. 룬(rune)

단일 문자를 나타냅니다. 룬은 해당 문자를 나타내는 유니코드 코드값을 사용하기 때문에 Println으로 출력하면 문자가 아닌 숫자 코드 형태로 출력됩니다.


Go Lang은 정적 타입 언어입니다. 프로그램 실행 전에 타입을 미리 알아내어 타입을 잘못된 위치에 사용하게 되면 오류 메시지를 반환합니다. 사용자가 미리 코드 내의 타입 문제를 체크할 수 있습니다.

 

타입 체크를 위해서 reflect 패키지의 TypeOf 함수를 사용할 수 있습니다.

 

package main

import (
          "fmt"
          "reflect"
)

func main() {
         fmt.Println(reflect.TypeOf("Hello World"))
         fmt.Println(reflect.TypeOf(23))
         fmt.Println(reflect.TypeOf(3.14))
         fmt.Println(reflect.TypeOf(true))
}

 

출력 결과값으로 다음과 같이 해당 입력값의 타입을 알 수 있습니다.

string
int
float64
bool

var를 통해 변수에 값을 할당하면 변수를 사용할 수 있습니다. 변수의 사용까지의 순서는 다음과 같이 진행됩니다.

 

var a int                변수 선언
a = 23                   변수값 할당
fmt.Println(a)           변수 사용

 

var를 통해 변수 선언하지 않고도 변수를 선언함과 동시에 값을 지정해줄 수 있습니다.

 

var a int = 23

 

일반적으로 Go Lang에서 변수의 선언과 동시에 값을 할당하는 경우 단축 변수 선언을 많이 사용합니다.

연산자 := 를 사용해서 타입을 선언하고 값을 할당하는 과정을 한 번에 수행할 수 있게 됩니다.

 

a := 23
반응형

'IT > Develop' 카테고리의 다른 글

Go Lang 기초 6 - 반복문 For  (0) 2021.07.28
Go Lang 기초 5 - 조건문 Switch  (0) 2021.07.28
Go Lang 기초 4 - 조건문 if  (0) 2021.07.28
Go Lang 기초 3 - 연산자  (0) 2021.07.28
Go Lang 기초 1 - Hello World  (0) 2021.07.20

+ Recent posts