방명록
- [GO] Go 기초 문법 - 변수 선언 및 자료형2023년 12월 30일 02시 32분 25초에 업로드 된 글입니다.작성자: 코딩백구반응형
변수 선언
- -Go 에서 변수를 선언하는 방법은 여러가지 방식이 있으며, 선언만 하고 사용하지 않는 변수가 있는 경우 에러가 표시된다.
- 기본적으로 var 키워드를 사용하여 변수를 선언한다. var 키워드를 앞에 적고 바로 뒤에 변수명, 그 뒤에 변수의 타입을 적는다.
ex ) var name string - 변수를 선언함과 동시에 초기화를 할 수 도 있다.
ex ) var name string = "Kim XX" - Go 에서 지원하는 단축 구문을 사용하여 변수를 선언할 수도 있다. (함수 내에서만 단축 구문 사용 가능)
ex ) name := "Kim XX" 으로 줄여서 표현 가능. - 변하지 않는 값, 상수를 선언하기 위해서는 const 키워드를 사용한다.
- 아래에서는 지역 변수 선언 방법과 전역 변수 선언 방법 및 복수의 변수를 한번에 선언하는 예시를 보도록 하겠다.
1. 지역 변수 선언
package main import ( "fmt" "reflect" ) func main() { var message string message = "Hello, Go!" // -> string fmt.Println(reflect.TypeOf(message)) // string var hi string = "Hi" // -> string fmt.Println(reflect.TypeOf(hi)) // string var whoAreYou = "Who are you?" // -> string fmt.Println(reflect.TypeOf((whoAreYou))) // string goodBye:="Goodbye" // 타입이 명시되지 않은 경우, 컴파일 시 자동으로 타입을 추론해준다. // -> string fmt.Println(reflect.TypeOf(goodBye)) // string }
2. 전역 변수 선언
- 전역 변수 선언 시에는 단축 구문을 사용할 수 없다.
package main import ( "fmt" ) var global1 string var global2 string = "Hi Global" func main() { global1 = "global1" fmt.Println(global1, global2) // global1, Hi Global }
3. 여러개의 변수 선언
- 변수 여러개를 선언하고 초기화 할 때에는 반드시 선언하는 변수와 초기화 하는 값의 개수가 같아야 한다.
- 이때, 변수의 타입은 굳이 다 같을 필요는 없다.
// 단축 구문 사용 package main import ( "fmt" ) func main() { message, hi, whoAreYou := "Hello Go!","Hi","Who are you?" fmt.Println(message, hi, whoAreYou) } // var 사용 package main import ( "fmt" ) func main() { var( message string = "Hello" hi string = "Hi" whoAreYou string = "Who are you?" ) fmt.Println(message, hi ,whoAreYou) }
변수 재할당과 선언
- var 로 초기화를 한 상태에서 재할당 하는것은 다른 언어와 같다.
- 하지만, 단축 구문으로 재할당을 할 경우에는 새로운 변수가 하나라도 존재해야 기존 변수에도 재할당 작업을 수행하고, 그렇지 않으면 에러가 발생한다.
package main import ( "fmt" ) func main() { message:= "before Change" // message:= "after Change" // error 발생 message = "after Change" // 문제 x message, hi:= "change", "Hi" // 새로운 변수가 있으면 기존 변수에는 재할당 fmt.Println(message, hi) }
자료형
Go 에도
1. 숫자형
uint8 the set of all unsigned 8-bit integers (0 to 255) 1 uint16 the set of all unsigned 16-bit integers (0 to 65535) 2 uint32 the set of all unsigned 32-bit integers (0 to 4294967295) 4 uint64 the set of all unsigned 64-bit integers (0 to 18446744073709551615) 8 - - - - int8 the set of all signed 8-bit integers (-128 to 127) 1 int16 the set of all signed 16-bit integers (-32768 to 32767) 2 int32 the set of all signed 32-bit integers (-2147483648 to 2147483647) 4 int64 the set of all signed 64-bit integers (-9223372036854775808 to 9223372036854775807) 8 - - - - float32 the set of all IEEE-754 32-bit floating-point numbers ±10^-453~±3.4 * 10^38 (소수점 7자리) 4 float64 the set of all IEEE-754 64-bit floating-point numbers ±5 * 10^-324~±1.7 * 10^308 (소수점 15자리) 8 - - - - complex64 the set of all complex numbers with float32 real and imaginary parts(복소수) 8 complex128 the set of all complex numbers with float64 real and imaginary parts(복소수) 16 - - - - byte alias for uint8 1 rune alias for int32 4 - - - - uint 32bit 시스템에서는 uint32, 64bit 시스템에서는 uint64와 같음 - int same size as uint - uintptr an unsigned integer large enough to store the uninterpreted bits of a pointer value - 2. 문자열
- string : 한번 생성되면 수정될 수 없는 Immutable 타입이며, `` 혹은 "" 으로 표현할 수 있다.
3. Boolean
- bool : true 및 false 를 의미한다.
반응형'Language > Go' 카테고리의 다른 글
[GO] GO 기초 문법 - 조건문 (0) 2024.01.22 [GO] Go 란 무엇일까? (0) 2023.12.28 다음글이 없습니다.이전글이 없습니다.댓글