상세 컨텐츠

본문 제목

Go - 기본적인 데이터 타입과 선언 (1)

Development/Go

by thisisnew 2022. 11. 1. 20:05

본문

반응형

Go에는 기본적인 타입이 있습니다.

  • 불리언(bool)
  • 숫자
  • 문자열

Go는 선언되었지만 값이 할당되지 않은 변수들에 제로 값(zero value)을 할당합니다.

 

1. 불리언

 

bool 타입의 변수는 true, false 중에 하나의 값을 가집니다. 제로 값은 false.

package main

import "fmt"

func main() {

	var zeroBool bool
	var isXXX = true

	fmt.Println("zeroBool's zero value is", zeroBool)
	fmt.Println("isXXX is", isXXX)
    
}

 

zeroBool's zero value is false
isXXX is true

2. 숫자

 

2-1. 정수

Go는 1~4바이트의 크기를 가지는 정수를 제공합니다.

https://medium.com/nerd-for-tech/go-with-me-basic-data-types-c6e72c27ec4

모든 정수 타입의 제로 값은 0입니다.

Go는 특수한 정수 타입이 있는데요. byte, int, uint입니다.

  • byte 타입은 uint8와 크기 동일합니다. 하지만 uint8보다는 byte로 사용하는 것을 추천합니다.
  • int와 uint는 플랫폼에 맞게 32비트 혹은 64비트의 정수로 변환되어 사용됩니다.
  • uint는 int와 동일하며 단지 부호가 없습니다.(0 혹은 양수)

정수를 사용할 때, 성능이나 특정 목적이 없다면 int를 사용하면 됩니다.

 

2-2. 부동 소수

Go의 부동 소수 타입에는 float32와 float64가 있습니다.

아래의 링크를 참고하면 최대 절대값, 최소 절대값을 확인 할 수 있습니다.

https://www.w3schools.com/go/go_float_data_type.php

 

Go Float Data Types

W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.

www.w3schools.com

저장 용량을 고려하여 둘 중 하나를 선택하시면 되겠습니다.

부동 소수 타입은 부정확하기 때문에 상황을 고려하여 사용하셔야 합니다.

부동 소수 타입의 제로 값은 0입니다.

 

2-3. 복소수

Go에는 두 개의 복소수 타입이 있습니다.

complex64와 complex128인데요.

complex64는 실수부, 허수부를 표현할 때 float32를 사용하고, complex128은 float64를 사용합니다.

제로 값은 실수부, 허수부 모두 0.

package main

import "fmt"

func main() {

	x := complex(2, 3)
	var y complex128 = 2.756 + 10i

	fmt.Println("x", real(x), imag(x))
	fmt.Println("y", real(y), imag(y))
    
}
x 2 3
y 2.756 10

3. 문자열

 

Go는 유니코드를 지원하기 때문에 문자열에 모든 유니코드 문자를 넣을 수 있습니다.

문자열 간에 비교도 가능하고, 연결도 가능합니다.

문자열의 제로 값은 빈 값입니다.

package main

import "fmt"

func main() {

	var sHello string
	fmt.Println("sHello's zero value :", sHello)

	sHello = "Hello!"
	var sWorld string = "world"
	fmt.Println(sHello == sWorld)

	var sHelloWorld = sHello + sWorld
	fmt.Println(sHelloWorld)

	sHello = "world"
	fmt.Println(sHello == sWorld)
    
}
sHello's zero value : 
false
Hello!world
true

 

반응형

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

Go - 복합 타입 (1)  (0) 2022.11.03
Go - 기본적인 데이터 타입과 선언 (2)  (0) 2022.11.02
zlib을 이용한 데이터 압축  (0) 2022.10.09
Go를 이용하여 가볍게 알아보는 Base64  (0) 2022.06.10

관련글 더보기

댓글 영역