[Golang] 자료형 1

이정훈·2023년 5월 22일
0

Golang

목록 보기
7/24
post-thumbnail

자료형의 종류와 특징

  • 변수는 데이터의 저장울 위해 할당된 메모리 공간에 붙여진 이름
  • 그런데 메로리 저장에 앞서 할당된 메모리에 정수를 저장할지? 아니면 실수를 저장할 지?가 결정되어야 한다.
  • 또한, 정수를 저장한다면 몇 바이트의 크기를 사용할 것인지?도 정한후에 할당하는 것이 좋다.
  • 이렇게 어떤 데이터를 저장할 지 표현하는 것이 자료형 이다.
  • Go 언어에서 쓸 수 있는 자료형은 부울린(bool), 문자열, 정수형 ,실수, 복소수, 기타 타입이 있다.
  • := 용법을 활용한 자료형 추론이 가능!
    예를 들어 정수값은 int로 실수 값은 float32로 자동할당

몇 바이트인지? How?

  • 자료형은 데이터의 형이 무엇인지? 알려주는 역할도 하지만 메모리를 몇 바이트 할당할 것인지?정하는 것도 중요!!
  • sizeof 자료형의 크기를 알 수 있는 함수
  • import "unsaf"를 입력하고 "unsafe.Sizeof(변수)"형태를 사용하여 선언한 자료형읜 size를 알 수 있다.

부울린(bool) type

  • 참 / 거짓 을 할당할 수 있는 자료형
  • 다른 언어에서는 0과 1 혹은 0과 다른 숫자로 표현하여 거짓과 참을 표현할 수 있지만 Go언어에서는 오로지 'true'와 'false'만 사용하여 할당
  • 부울린 타입은 1바이트로 할당!

종류

  • 부울린 : bool / 1 byte

정수 type

  • 가장 많이 쓰이는 타입
  • 눈에 띄는 자료형은 uintprt인데 이는 포인터의 비트 패턴을 할달할만한 크기의 자료형
  • 주로 포인터의 주소를 할당할 떄 사용
  • Go언어에서는 한눈에 자료형의 크기를 확인할 수 있게 int16, int 32와 같은 형태로 표현, 뒤에 숫자는 비트를 의미
  • 앞에 un이 붙은 자료형은 C언어와 다른 언어들에서 쓰이는 0과 양의 정수만 표현하는 unsigned와 같다.
    예를 들어 uint는 C언어에서의 unsigned int와 같다.
  • unsigned선언은 양수만 표현하는 것이기 때문에 음수 표현범위가 줄어든 만큼 양수 표현 범위가 두배가 된다.

종류

  • int와 unit는 최소 4바이트 크기의 데이터 타입
  • 32비트 시스템에서는 4바이트(32비트), 64비트 시스템에서는 8바이트(64비트)
  • 그렇다고 int32, uint32, int64, uint64의 별칭이 아니라 구별되는 하나의 형식

정수형(음수포함)

  • 부호 있는 정수 자료형으로, 플랫폼에 따라 32비트 또는 64비트입니다.
  • int / n비트 시스템에서 n비트
  • int8 / 1 바이트
  • int16 / 2 바이트
  • int32 / 4 바이트
  • int64 / 8 바이트

정수형(0, 양수)

  • 부호 없는 정수 자료형으로, 플랫폼에 따라 32비트 또는 64비트입니다.
  • uint / n비트 시스템에서 n비트
  • uint8 / 1 바이트
  • uint16 / 2 바이트
  • uint32 / 4 바이트
  • uint64 / 8 바이트
  • uintptr / 8 바이트

실수 및 복소수 type

  • 실수형과 정수형 타입은 비교적 표현할 수 있는 값의 범위가 매우 넓다.
  • 이러한 자료형의 중요한 선택 요소는 정밀도

종류

실수

  • float32 / 4바이트
  • float64 / 8바이트

복소수

  • complex64 / 8바이트
  • complex128 / 16바이트

문자열 type

  • " " 와 같이 비어있을 수 있고, 다른 언어에서 표현되는 null과 같이 Go언에어서 사용되는 nil이 아닐 수 있다.
  • UTF-8로 인코딩된 문자 시퀀스를 나타내는 자료형
  • string으로 선언한 문자열 타입은 immutable 타입으로서 값을 수정할 수 없다.
  • 예를 들어 var str string = "hello"와 같이 선언하고 str[2]='a'로 수정이 불가능!

종류

  • 문자열 : string / 16바이트

기타 type

  • byte와 rune 자료형이 있다.
  • byte는 uint8과 똑같은 자료형이라고 생각하자!
  • 바이트 값을 8비트 부호없는 정수 값과 구별하는데 사용
  • rune은 int32와 똑같은 자료형
  • 관례상 문자값을 정수 값과 구별하기 위해 사용

종류

  • 정수(0, 양수) : byte / 1 바이트

  • 정수 : rune / 4 바이트

    Go에서는 array, slice, map, struct와 같은 다양한 자료형이 있다.

    한 눈에 끝내는 고랭 기초 !!

profile
싱숭생숭늉

0개의 댓글