티스토리 뷰

반응형

Go 언어의 변수 자료형

Go 언어는 정적 타입 언어로, 변수의 자료형을 컴파일 시에 미리 결정합니다. Go에서는 기본 자료형과 사용자 정의 자료형이 있으며, 주요 기본 자료형은 다음과 같습니다:

1. 기본 자료형 (Primitive Types)

정수형 (Integer Types)

Go에서는 다양한 크기의 정수형 자료형을 제공합니다:

  • int : 기본 정수형 (플랫폼에 따라 32비트 또는 64비트)
  • int8 : 8비트 정수 (-128 to 127)
  • int16 : 16비트 정수 (-32,768 to 32,767)
  • int32 : 32비트 정수 (-2,147,483,648 to 2,147,483,647)
  • int64 : 64비트 정수 (-9,223,372,036,854,775,808 to 9,223,372,036,854,775,807)

Go는 부호 없는 정수형도 지원합니다:

  • uint : 기본 부호 없는 정수형 (플랫폼에 따라 32비트 또는 64비트)
  • uint8 : 8비트 부호 없는 정수 (0 to 255) (별칭: byte)
  • uint16 : 16비트 부호 없는 정수 (0 to 65,535)
  • uint32 : 32비트 부호 없는 정수 (0 to 4,294,967,295)
  • uint64 : 64비트 부호 없는 정수 (0 to 18,446,744,073,709,551,615)

부동 소수점형 (Floating Point Types)

Go는 IEEE-754 표준을 따르는 두 가지 부동 소수점 자료형을 제공합니다:

  • float32 : 32비트 부동 소수점 (약 6~7자리의 정밀도)
  • float64 : 64비트 부동 소수점 (약 15~16자리의 정밀도)

복소수형 (Complex Types)

Go는 복소수(complex numbers)를 위한 자료형도 지원합니다:

  • complex64 : 64비트 복소수 (실수와 허수 부분이 각각 float32)
  • complex128 : 128비트 복소수 (실수와 허수 부분이 각각 float64)

문자형 (Character Types)

  • byte : uint8의 별칭으로, ASCII 문자 데이터를 저장하는 데 사용됩니다.
  • rune : int32의 별칭으로, 유니코드 코드 포인트를 저장하는 데 사용됩니다.

불리언형 (Boolean Type)

  • bool : 참(true) 또는 거짓(false) 값만 가질 수 있는 논리 자료형입니다.

문자열형 (String Type)

  • string : 불변의 문자열로, UTF-8 인코딩된 바이트 시퀀스를 표현합니다.

2. 사용자 정의 자료형 (User-Defined Types)

Go에서는 기본 자료형 외에도 사용자가 새로운 자료형을 정의할 수 있습니다.

배열 (Array)

  • 동일한 자료형의 요소들로 이루어진 고정 길이의 자료 구조입니다.
  • 배열의 크기는 고정되어 있으며, 선언 시에 지정해야 합니다.
var a [5]int // 정수형 배열, 길이 5

슬라이스 (Slice)

  • 동적 크기의 배열처럼 작동하는 자료형으로, 고정된 크기의 배열에 비해 더 유연합니다.
  • 슬라이스는 길이(len)와 용량(cap)을 가집니다.
s := []int{1, 2, 3} // 정수형 슬라이스

맵 (Map)

  • 키-값 쌍을 저장하는 해시 맵 자료형입니다.
  • 모든 키는 고유해야 하며, 값은 키와 관련된 데이터입니다.
m := make(map[string]int) // 문자열 키, 정수 값의 맵

구조체 (Struct)

  • 여러 자료형을 묶어서 하나의 자료 구조로 만들 수 있는 사용자 정의 자료형입니다.
type Person struct {
    Name string
    Age  int
}

인터페이스 (Interface)

  • 메서드의 집합을 정의하는 자료형으로, 다형성을 구현하는 데 사용됩니다.
type Shape interface {
    Area() float64
}

3. 타입 변환 (Type Conversion)

Go에서는 암시적 타입 변환을 지원하지 않으며, 명시적으로 타입 변환을 해야 합니다.

var i int = 42
var f float64 = float64(i) // int를 float64로 변환

요약

  • Go는 다양한 기본 자료형과 사용자 정의 자료형을 제공하여 유연하고 강력한 프로그램을 작성할 수 있도록 합니다.
  • 자료형은 고정되어 있으며, 명시적 타입 변환이 필요합니다.
반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/10   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함