We are Architect

변수 - 3(6) 본문

Programing/Go

변수 - 3(6)

the best infra 2025. 1. 5. 16:37

 

* 자료형 타입

  • go 언어는 강타입언어라서 자료형을 맞춰줘야 한다.
  • 혹은 자료형 변환을 해줘야 한다. 
이름 설명 값의 범위
uint8 1바이트 부호 없는 정수 0 ~ 255
uint16 2바이트 부호 없는 정수 0 ~ 65535
uint32 4바이트 부호 없는 정수 0 ~ 4294967295
uint64 8바이트 부호 없는 정수 0 ~ 1844..
int8 1바이트 부호 있는 정수 -128 ~ 127
int16 2바이트 부호 있는 정수 -32768 ~ 32767
int32 4바이트 부호 있는 정수 -2147483648 ~ 2147483647
int64 8바이트 부호 있는 정수 -92233... ~ 92233...
float32 4바이트 실수 IEEE-754 32비트 실수
float64 8바이트 실수 IEEE-754 64비트 실수
complex64 8바이트 복소수(진수, 가수) 진수와 가수의 범위는 float32 범위와 같음.
complex128 16바이트 복소수(진수, 가수) 진수와 가수의 범위는 float64 범위와 같음.
byte uint8의 별칭
1바이트 데이터를 나태낼 때 사용
0 ~ 255
rune int32의 별칭
UTF-8로 문자 하나를 나타낼 때 사용
-2147483648 ~ 2147483647
int 32비트 컴퓨테이서는 int32
64비트 컴퓨터에서는 in64와 같음
 
uint 32비트 컴퓨테이서는 uint32
64비트 컴퓨터에서는 uin64와 같음
 

 

 

 

* 자료형 변환 실습 - 1

  • 다음과 같이 코드를 작성하여 보자.
package main

import "fmt"

func main() {
	var a int16 = 3456
	var b int8 = int8(a) //int16 -> int8
	var c int16 = int16(b)

	fmt.Println(a, b, c)
}

 

  • 다음과 같이 결과가 나온다.
    • 자료형이 작은 변수가 형변환되어 큰 자료형으로 옮겨가면 문제가 되지 않는다.
    • 그러나 큰 자료형에서 작은 자료형으로 변환이 되면 없어지는 값이 생긴다.

위에 결과가 나오는 경우

 

 

* 자료형 변환 실습 - 2

  • 실수 또한 자료형의 범위 그 이상을 넘으면 오류가 생긴다.
package main

import "fmt"

func main() {
	var a float32 = 1234.523
	var b float32 = 3456.123
	var c float32 = a * b
	var d float32 = c * 3

	fmt.Println(a)
	fmt.Println(b)
	fmt.Println(c)
	fmt.Println(d)

}

 

  • 다음과 같은 결과가 나온다.

출력한 결과

 

 

* 함수 안에서 변수의 사용 범위 여부

  • main안에 { } 안에 있는 변수들은 { } 밖에서 사용하지 못한다. 
  • 그러나 main 함수 안에 변수로 선언된 값들은 { } 안에서도 사용이 가능하다. 이러한 변수들을 전역변수라고 한다. 
package main

import "fmt"

var g int = 10 // 패키지 전역변수 : 패키지 전체에 살아있는 변수.

func main() {
	var m int = 20

	{
		var s int = 50
		fmt.Println(m, s, g)
	}

	m = s + 20 // s 는 { }안에 존재하는 변수이기 떄문에 불러올 수 없음. 
}

'Programing > Go' 카테고리의 다른 글

연산자(8)  (0) 2025.01.08
fmt 패키지를 통한 표준 입출력(7)  (0) 2025.01.06
변수 - 2(5)  (0) 2025.01.04
변수(4)  (1) 2025.01.03
Go로 Hello World 출력해보기(3)  (1) 2025.01.02