✔기본자료형
1. bool: true, false를 저장
2. string: 문자, 문자열을 저장
3. int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64, uintptr: 정수형
int, uint, uintptr은 32비트 시스템에서는 32비트길이, 64에서는 64비트길이!
특별히 정수 크기 및 부호를 지정할 이유가 없으면 int 쓴다.
4. byte: uint8과 같다.
5. float32, float64: 실수형
7. complex64, complex128: 복소수형
✔형 변환: 변환할 타입(변환할 값)
import (
"fmt"
"math/cmplx"
)
var (
i int
f float64
MaxInt uint64 = 1 << 64 - 1
z complex128 = cmplx.Sqrt(-5 + 12i)
)
func main(){
const format = "%T(%v)\n"
fmt.Printf(format, MaxInt, MaxInt)
fmt.Printf(format, z, z)
//float형인 변수 f에 int형인 변수 i를 대입할 수 없다!
//int에서 float64로 묵시적 타입 변환하지 못하기 때문
f = i
//다른 타입을 저장하려면 변환할 타입(변수)와 같이, 형 변환을 해줘야 한다.
f = float(i)
}
>>실행결과
uint64(18446744073709551615) complex128((2+3i)) |
위 예제에서는 모르는 것이 많았다.
1. 1<<64 - 1 이 어떤 식을 표현하는지 몰라서 찾아보았다.
shift 연산자 <<, >>
1<<64 라고 하면, 1의 비트를 왼쪽으로 64번 이동한 것이다. (>>이면 오른쪽으로 이동)
그리고 64비트 부호 없는 정수를 최대화하고 오류를 방지하기 위해 1을 빼는 것이다.
2. %T(%v)\n 는 어떤 형식으로 바꿔주는지 몰라서 찾아보았다.
형식지정자
형식지정자 | 의미 | 입력 | 출력 |
%T | 타입을 표현 | fmt.Printf("%T\n", num1) | int |
%v | 값을 표현 | fmt.Printf("%v\n", num1) | 1 |
참고문서 링크
문자열 포맷팅: https://mingrammer.com/gobyexample/string-formatting/
Go by Example: 문자열 포맷팅
Go는 printf 전통에서 문자열 포맷팅을 훌륭하게 제공합니다. 여기에 일반적인 문자열 포맷팅 예시가 몇 가지 있습니다. type point struct { x, y int } Go는 일반적인 값들을 포맷팅 하기 위해 설계된 몇
mingrammer.com
shift 연산자: https://dejavuqa.tistory.com/328
Golang << 와 >> 연산자 (그리고 메모리 사이즈 계산)
Gin의 기능을 확인하다 아래와 같은 코드를 확인확인했습니다. r.MaxMultipartMemory = 8 << 20 메모리 사이즈를 할당하는 설정인데 << 연산자는 알고 있으나 써보는 것은 처음이라 정리하고 갑니다. 우선
dejavuqa.tistory.com
stackoverflow 1 << 64 - 1: https://stackoverflow.com/questions/26833421/how-does-1-64-1-work
How does 1 << 64 - 1 work?
At http://tour.golang.org/#14 they show an example where the number 1 is shifted by 64 bits. This of course would result in an overflow, but then it is subtracted by 1 and all is well. How does hal...
stackoverflow.com
'GoLang' 카테고리의 다른 글
21.10.07 zero values (0) | 2021.10.07 |
---|---|
21.09.13 [프로그래머스] 여러가지 변수 선언 방법 (0) | 2021.09.13 |
21.09.13 [프로그래머스] 함수와 여러가지 리턴 방법 (0) | 2021.09.13 |
21.09.13 [프로그래머스] 함수와 매개변수 (0) | 2021.09.13 |
21.09.13 [프로그래머스] Hello World (0) | 2021.09.13 |