Golang 변수 종류
1. 불린
bool
2. 정수형
int, int8, int16, int32, int64 , uint, uint8, uint16, uint32, uint64, uintptr
go 언어는 비트 수를 직접적으로 표현하는게 더 좋다고 생각하는 듯 합니다.
저는 처음 봤을땐 "기존 다른 언어에서 short, int ,long을 이미 사용 중인데 굳이 익숙지 않게 변수명이 다르네 " 라고 생각했는데
보다 보니까 오히려 변수에 비트수도 확실히 알 수 있고 익숙해지면 short int long 보다 배우는 입장에서 좋을거라고 생각됩니다.
3. 문자열
string
Go에서 문자열은 불변성(Immutable)을 가지고 있어서 값을 수정할 수 가 없다고 합니다.
알아본 이유는
- 단순해지기 때문에 디버깅 & 코드 추론이 쉽다.
- 메모리 관리에 효율적이고 불변이다 보니 컴파일러에 의해 최적화 하기 좋다.
라고 하는데..
아직 Dart,Java,C#을 해본 저로서는 사용 중에 다소 어색할 것 같아 걱정...

4. 실수형
float32, float64, complex64, comprex128
float64는 저희가 기존에 알던 Double..
complex는 복소수를 사용할때 쓰는 변수인데
아직 개발하면서 복소수를 사용한 적이 없다...
5, 기타
byte : uint8과 동일한 타입, 바이트 코드에 사용합니다.
rune : int32하고 동일한 타입, 유니코드 코드포인트에 사용됩니다.
* 코드포인트? : 텍스트를 표현하기 위한 시스템(예, 유니코드)에서 추상 문자를 나타내기 위해 할당된 숫자입니다 .
예시 ) 유니코드에서, 코드 포인트는 "U+1234" 형식으로 표현
https://developer.mozilla.org/ko/docs/Glossary/Code_point
코드 포인트 (Code point) - MDN Web Docs 용어 사전: 웹 용어 정의 | MDN
**코드 포인트 (code point)**는 텍스트를 표현하기 위한 시스템(예, 유니코드)에서 추상 문자를 나타내기 위해 할당된 숫자입니다. 유니코드에서, 코드 포인트는 "U+1234" 형식으로 표현됩니다. 여기
developer.mozilla.org
변수 선언 방법
javascript, dart 등 특정 언에서 사용이 가능했던 var 변수를 Go언어에서도 사용이 가능했는데
타입을 명시할 때에도 Go는 다른 언어들과의 차이점이 있었습니다.
Dart,Java,C# vs Golang )
Dart,Java,C# | Golang |
[타입] [변수명] 예시) int count; |
var [변수명] [타입] 예시) var count int |
그러면 Go에서는 변수 선언 방식이 타입을 명시하는 방법 밖에 없나?
아닙니다.
Go는 타입을 추론하는 기능이 있기 때문에
// 타입을 명시한 변수 선언 방법
var a int = 0
// 타입을 명시하지 않고 변수 선언 방법
var a = 0
두 가지다 int로 선언 됩니다.
* 참고 : 사용하지 않는 변수 및 패키지는 Golang에선 컴파일 타임에서 에러로 처리됩니다.
여기서 특이한 변수 선언방법이 한가지 더 있는데,
[변수명] := [데이터]
해당 방식으로 변수를 선언하면 var 생략이 가능합니다.
(단, 함수 내에서만 해당 형태로 선언이 가능합니다.)
func sum() {
//var count = 10 or var count int = 10 하고 동일한 결과
sum := 0
count := 10
for i := 0; i < count ; i++ {
sum++;
}
}
상수
상수는 변수를 선언하는 방법과 큰차이는 없습니다.
변수를 선언할때는 var를 사용했다면 상수는 var 대신에 const로 사용하시면 됩니다.
const [변수명] [타입] (타입 생략가능)
또한 상수는 한번에 여러개를 선언할 수 있습니다.
const (
name = "도형"
shape = "Hexagon"
)
상수를 0, 1, 2 ... 차례대로 값을 주고 싶을 경우에는
const (
Apple = iota
Banna
Melon
)
// 이러면 Apple = 0, Banna = 1, Melon = 2 라는 값이 들어갑니다.