Notice
Recent Posts
Recent Comments
Link
Connecting
Go 언어에서 변수 설정하기 본문
반응형
변수 설정하기
Go 언어는 기본적으로 var키워드를 사용해서 변수를 선언할 수 있고, 자료형을 생략하거나 추가할 수 있습니다. Go 언어는 기본적으로 변수 타입을 추론하기 때문인데 다음과 같은 예제를 살펴보도록 하겠습니다.
var name string // 변수 name은 문자열이다.
var age int
var title string = "Golang" // 변수 title은 문자열이며, golang 문자열을 초기화(대입) 한다.
var number int = "30"
일반적인 언어와 다르게 Go 언어의 경우 자료형이 뒤에 오기 때문에 다른 언어를 접하신 분들이 Go 언어를 접하게 되면 어색하게 느껴질 수 있습니다. 하지만 가만히 살펴보면 사람이 글자를 쓰는 방식과 비슷하기 때문에 가독성에서 뛰어나다고 할 수 있습니다.
이번에는 뒤에오는 자료형을 생략해 보겠습니다.
var name // 컴파일 에러
var title = "Golang" // 변수 title은 문자열이며, golang 문자열을 초기화 한다.
var number = "30"
위와 다르게 자료형을 생략했으나 우리는 해당 변수의 형태를 통해 어떠한 변수가 대입되는지 확인할 수 있습니다. 이것을 타입추론이라고 부릅니다. 하지만, 자료형이 생략된 상태에서 변수가 선언되는 경우 어떠한 자료형이 대입될지 알 수 없기 때문에 개발자의 실수를 방지하기 위해서 초기화 하지 않는 변수의 경우 Go 컴파일러가 에러를 발생합니다.
다음은 변수를 선언하고, 선언된 변수를 출력하는 예제 입니다.
package main
import f "fmt"
func main() {
name := "seongwon" // 선언과 동시에 변수를 초기화 할 수 있습니다. 이 경우 축약된 문법을 사용할 수 있습니다.
age := 27
var title string = "Golang"
var number int = 30
f.Println(name, age, title, number)
}
Go 언어에서는 한번에 여러 변수 값을 초기화 하거나 상수를 설정하고, iota를 사용하여 규칙적으로 값을 증가시킬 수 있습니다.
var ( // 변수 i, b, s 는 정수, boolean, 문자열이다.
i int
b bool
s string
)
var name, title, num1, num2 = "seongwon", "golang", 1, 2 // 각 변수에 순서대로 값을 대입한다. 이때 타입은 초기화된 변수의 형태를 통해 결정된다.
const NICKNAME = "lucas"
const (
GO = iota // 여러 상수를 열거하고, 0부터 1씩 값을 증가시킨다.
JAVA
PYTHON
C
)
iota를 사용하면 단순히 값을 1씩 증가시키며 사용하는 것 이외에 다음과 같이 변형하여 사용할 수 있습니다.
const (
_ = iota // 0 -> 무시
KB ByteSize = 1 << (10 * iota) // << 연산자는 비트를 1만큼 쉬프트 합니다. 따라서 본 구문은 2의 10이기 때문에 1024가 됩니다.
MB
GB
TB
PT
EB
)
다음 예제를 통해서 위에서 설명한 코드가 정상적으로 동작하는지 확인하세요.
package main
import f "fmt"
type ByteSize uint64
var (
i int
b bool
s string
)
var name, title, num1, num2 = "seongwon", "golang", 1, 2
const NICKNAME = "lucas"
const (
GO = iota // 여러 상수의 값을 0부터 1씩 값을 증가시킨다.
JAVA
PYTHON
C
)
const (
_ = iota // 초기값이 0이기 때문에 버린다.
KB ByteSize = 1 << (10 * iota) // << 연산자는 비트를 이동시킨다. 본 문법에서는 1을 왼쪽으로 10번 이동하므로 2의 10승은 1024가 됩니다.
MB
GB
TB
PT
EB
)
func main() {
i, b, s = 1, true, "example"
f.Println(i, b, s)
f.Println("nickname : ", NICKNAME)
f.Println(name, title, num1, num2)
f.Println(GO, JAVA, PYTHON, C)
f.Println(KB, MB, GB, TB, PT, EB)
}
'Go 언어' 카테고리의 다른 글
Go 언어 함수 사용하기 (2) | 2020.07.14 |
---|---|
Go 언어 배열 / 슬라이스 / 맵 (0) | 2020.07.12 |
Go 언어 조건문 / 분기문 / 반복문 사용하기 (2) | 2020.07.12 |
Go 언어 설치하고 개발환경 셋팅하기 (0) | 2020.07.07 |
Go 언어 컨셉 이해하기 (0) | 2020.07.07 |
Comments