Go - 데이터 타입: 초보자를 위한 친절한 가이드
안녕하세요, 열망하는 프로그래머 여러분! 오늘 Go 프로그래밍의 fascinling 세계로 뛰어들 준비가 되셨나요? 오늘 우리는 Go의 기본 개념 중 하나인 데이터 타입을 탐구할 것입니다. 코드를 한 줄도 작성해본 적이 없으신 분들도 걱정 마세요 - 저는 여러분을 단계별로 안내해 드릴 것입니다. 수년 동안 수많은 학생들을 가르쳐온 경험을 바탕으로 말이죠. 시작해 보겠습니다!
데이터 타입이란?
구체적인 내용으로 들어가기 전에 데이터 타입이 무엇인지 이해해 보겠습니다. 큰 파티를 준비하는 것을 상상해 보세요 (fun하지 않나요?). 다양한 정보를 관리해야 합니다:
- 손님 수 (정수)
- 인당 식사 비용 (소수점이 포함된 숫자)
- 깜짝 파티인지 여부 (예 또는 아니요)
- 주인공의 이름 (문자열)
프로그래밍에서 우리는 이러한 다양한 정보를 나타내기 위해 다양한 데이터 타입을 사용합니다. Go는 신중한 언어이기 때문에 여러 가지 데이터 타입을 제공해줍니다.
정수 타입
정수 타입부터 시작해 보겠습니다. 이 타입은 정수를 나타내고, 우리의 파티에서 손님 수와 같은 것을 사용합니다.
기본 정수 타입
Go는 다양한 정수 타입을 제공하며, 크기와 음수를 나타낼 수 있는지에 따라 다릅니다:
타입 | 크기 (비트) | 범위 |
---|---|---|
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 |
uint8 | 8 | 0 to 255 |
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 |
이제 코드에서 어떻게 사용할 수 있는지 보겠습니다:
package main
import "fmt"
func main() {
var partyGuests int = 50
var smallPartyGuests int8 = 10
var hugePartyGuests uint64 = 1000000
fmt.Println("Regular party guests:", partyGuests)
fmt.Println("Small party guests:", smallPartyGuests)
fmt.Println("Huge party guests:", hugePartyGuests)
}
이 예제에서 우리는 다양한 파티 타입에 손님 수를 저장하는 변수를 선언하고 있습니다. int
타입은 일반 파티에 사용되고, int8
은 작은 모임에 사용되며 (127을 초과하지 않을 것으로 알고 있음
), uint64
는 엄청난 축제에 사용됩니다 (도시 전체 이벤트를 계획할 수도 있으니까!
).
'int'과 'uint' 타입
Go는 또한 int
과 uint
타입을 제공하며, 이들은 최소 32비트 크기지만 시스템에 따라 더 커질 수 있습니다. 이들은 특정 크기가 필요하지 않을 때 가장 편리한 선택입니다.
var flexibleNumber int = 42
var positiveFlexibleNumber uint = 42
여기서 flexibleNumber
는 양수 또는 음수가 될 수 있으며, positiveFlexibleNumber
는 항상 양수입니다.
부동소수점 타입
이제 부동소수점 숫자에 대해 이야기해 보겠습니다. 이들은 식대 비용과 같은 소수점이 포함된 숫자를 나타내는 데 사용됩니다.
Go는 두 가지 부동소수점 타입을 제공합니다:
타입 | 크기 (비트) | 정밀도 |
---|---|---|
float32 | 32 | 약 7자리 십진수 |
float64 | 64 | 약 15자리 십진수 |
이제 이들을 사용해 보겠습니다:
package main
import "fmt"
func main() {
var costPerPerson float32 = 15.50
var totalBudget float64 = 1000.75
fmt.Printf("Cost per person: $%.2f\n", costPerPerson)
fmt.Printf("Total budget: $%.2f\n", totalBudget)
}
이 예제에서 우리는 float32
을 인당 식사 비용에 사용하고 (극도의 정밀도가 필요하지 않음
), float64
을 총 예산에 사용하고 있습니다 (정확한 계산을 위한 더 많은 소수점 자리
).
%.2f
은 부동소수점을 두 자리 소수점으로 표시하도록 합니다.
다른 수학 타입
Go는 특정 상황에서 유용한 몇 가지 더 수학 타입을 제공합니다.
복소수
네, Go는 복소수를 처리할 수 있습니다! 두 가지 타입을 제공합니다:
타입 | 설명 |
---|---|
complex64 | float32 실수와 허수 부분을 가진 복소수 |
complex128 | float64 실수와 허수 부분을 가진 복소수 |
다음은 빠른 예제입니다:
package main
import "fmt"
func main() {
var c64 complex64 = 1 + 2i
var c128 complex128 = 3 + 4i
fmt.Println("Complex64:", c64)
fmt.Println("Complex128:", c128)
}
복소수는 자주 사용하지 않을 수 있지만, 필요할 때 Go는 당신을 지원해 줍니다!
Byte와 Rune
Go는 특정 문맥에서 사용되는 두 가지 정수 타입의 별칭을 제공합니다:
타입 | 별칭 για | 일반적인 사용 |
---|---|---|
byte | uint8 | 데이터의 한 바이트를 나타냄 |
rune | int32 | 유니코드 코드 포인트를 나타냄 |
다음은 어떻게 사용할 수 있는지 보여줍니다:
package main
import "fmt"
func main() {
var b byte = 65
var r rune = 'A'
fmt.Printf("Byte %d represents: %c\n", b, b)
fmt.Printf("Rune %d represents: %c\n", r, r)
}
이 예제에서 b
와 r
은 모두 'A'를 나타냅니다. 하지만 b
는 ASCII 값을 사용하고, r
는 유니코드 코드 포인트를 사용합니다.
결론
와우! 오늘 많은 내용을 다루었습니다. 정수에서 부동소수점, 그리고 복소수까지, Go는 다양한 데이터 타입을 제공해줍니다. 올바른 데이터 타입을 선택하는 것은 올바른 도구를 선택하는 것과 같아요 - 코드를 더 효율적으로 만들고 오류를 방지할 수 있습니다.
Go 여정을 계속하면서 이러한 타입에 익숙해질 것입니다. 처음에는 압도되는 느낌이 들 수 있지만, 완전히 정상입니다! 자전거 타는 것을 배우는 것처럼, 연습만 하면 프로가 될 수 있습니다.
계속 코딩하고, 계속 배우고, 가장 중요한 것은 즐겁게 만들어 주세요! 결국, 프로그래밍은 완벽한 파티를 계획하는 것과 같아요 - 올바른 요소들을 함께 모아서 놀라운 것을 만드는 것입니다. 행복하게 코딩하세요!
Credits: Image by storyset