[Go] 3. 변수

garam0410·2021년 4월 4일
0

Golang

목록 보기
3/6
post-thumbnail

변수란?

데이터를 저장하는 일정 공간

Golang 에서의 변수를 보기전에, 예제를 위한 코드를 먼저 보자

package main

import "fmt"

func main() {
	var a int
	var b int
	a = 3
	b = 4

	fmt.Println(a + b)
}

변수의 속성에는 변수명, 값, 종류(Type) 가 있다.
변수는 '변하는 숫자' 라는 의미도 담겨 있다. Golang에서는 변수를 선언하겠다는 의미의 키워드를 사용하는데, variable에서 나온 var이라는 키워드를 사용한다.

위 코드에서 var a int 에서 var은 변수를 선언하겠다는 의미이고, a는 변수명, int는 종류(Type)가 된다. 변수의 속성에서 값은 아래에 a = 3 이라고 대입된 것을 볼 수 있다.


변수의 종류

Golang에서의 변수의 종류(Type)에는 아래와 같이 있다. 그리고, 뒤에 붙어오는 숫자에 따라서 메모리에서 차지하는 크기가 달라진다.

  • int : 정수형
    - 32비트 컴퓨터 => 4바이트
    - 64비트 컴퓨터 => 8바이트

    • int32
      • 4바이트
    • int64
      • 8바이트
    • int8
      • 1바이트
    • int16
      • 2바이트
  • float : 실수형
    - 32비트 컴퓨터 => 4바이트
    - 64비트 컴퓨터 => 8바이트

    • float32
      • 4바이트
    • float64
      • 8바이트
  • bool : 논리형, 크기 측정x

  • string : 문자형, 문자열의 길이에 따라 크기가 결정
    - 영어 : 1바이트
    - 그외 : 2~3바이트

     var word string = "abc"

    위 코드에서, word 라는 변수에 abc라는 문자열이 저장된 모습을 볼 수 있는데, Golang에서는 abc라는 문자열 하나하나를 룬(rune) 이라고 표현 한다. 즉, string 타입은 룬(rune) 의 모임이라고 할 수 있으며, 후에 배울 배열과 관련이 있다.


변수의 크기에 따라서 저장될 수 있는 값의 범위가 달라지는데, 정수형과 실수형을 봤을 때, 무조건 int64, float64를 쓰면 거의 범위를 상관하지 않고 최대한으로 값을 쓸 수 있게된다. 그럼에도, 다른 형태의 종류(Type)가 있는 이유는, 예를들어 1이라는 정수를 저장하는데, int64를 쓴다면, 그만큼 메모리공간을 낭비하게 된다. 즉, 컴퓨터의 메모리공간은 한정적이기 때문에, 메모리 공간을 효율적으로 사용해야하기 때문에 존재한다.
package main

import "fmt"

func main() {
	var a int
	var b int
	a = 3.14159 // 실수형이 들어가서 에러
	b = "calculator" // 문자형이 들어가서 에러

	fmt.Println(a + b)
}

변수를 선언하고, 값을 대입할 때, 종류(Type)에 맞게 선언해 주어야 하는데, 만약 위와 값을 대입했다면 오류가 발생할 것이다.

GO 소스파일

package main

import "fmt"

func main() {
	var a int
	var b int
	a = 3
	b = 4

	fmt.Println(a + b)

	var word string = "abc"
	fmt.Println(word)
}

0개의 댓글