목차
- Go 변수 데이터타입
- Go 변수 선언(=생성)
- Go 초기값 갖는 변수 선언
- Go 초기값 없는 변수 선언
- Go 변수 선언 후 값 할당
- Go var / := 차이점
- Go 다중 변수 선언
- Go 블럭 안에서 변수 선언
- Go 변수명 작성 규칙
- Go 여러 단어로 변수명 짓기 - (Camel/Pascal/Snake)
- 복습 연습문제
※ 변수: 데이터 담는 그릇. (엄밀히 말하면, 데이터 저장 위치 지시자.)
Go 변수 데이터타입
Go 언어에는 다양한 유형의 변수 있음.
- int - 정수 (예) 123. -123
- float32 - 부동수수 (예) 12.34 또는 -12.34
- string - 문자열 (예) "Homzzang.com" ※ 큰따옴표로 묶어야 함.
- bool - 참거짓 (예) true, false ※ 두 가지 상태 값만 가짐.
- 더 자세히 보기
Go 변수 선언(=생성)
2가지 방법으로 선언 가능.
[방법1] - var 키워드 이용
var var_name type = value
PS1. 항상 type과 value 중 하나 또는 모두를 지정해야 함.
PS2. value 할당 없이도 변수 생성 가능.
[방법] - := 기호 이용
var_name := value
PS1. 변수 자료형은 값에서 자동으로 유추됨.
PS2. value 할당 없이는 변수 생성 불가능함.
Go 초기값 갖는 변수 선언
변수 값을 아는 경우, 변수 선언과 동시에 값 할당 가능.
[예제]
package main
import ("fmt")
func main() {
var site string = "홈짱닷컴" //type 명시
var host = "Homzzang.com" //type 유추
open := 2012 //type 유추
fmt.Println(site) // 홈짱닷컴
fmt.Println(host) // Homzzang.com
fmt.Println(open) // 2012
}
Go 초기값 없는 변수 선언
모든 변수가 초기화되며, 해당 자료형의 기본값으로 자동 설정됨.
[예제]
package main
import ("fmt")
func main() {
var a string
var b int
var c bool
fmt.Println(a) //
fmt.Println(b) // 0
fmt.Println(c) // false
}
PS. 문자열 기본값은 빈 값(즉, "")이라 아무 것도 안 찍힘.
Go 변수 선언 후 값 할당
변수값을 처음부터 알 수 없을 시, 변수 먼저 선언 후에 값 할당 가능.
[예제]
package main
import ("fmt")
func main() {
var host string
host = "Homzzang.com"
fmt.Println(host) // homzzang.com
}
[주의] := 기호 이용해 변수 선언 시, 선언과 동시에 값 할당 필수.
Go var / := 차이점
var 키워드
- 함수 안팎에서 모두 사용 가능.
- 변수 선언과 값 할당을 분리 가능.
:= 기호
- 함수 안에서만 사용 가능.
- 변수 선언과 값 할당 분리 불가. (즉, 무조건, 동시에 해야 함.)
[예제1] - 함수 밖에서 변수 선언 후, 함수 안에서 값 할당.
package main
import ("fmt")
var site string
var host string = "Homzzang.com"
var open = 2012
func main() {
site = "홈짱닷컴"
fmt.Println(site) // 홈짱닷컴
fmt.Println(host) // Homzzang.com
fmt.Println(open) // 2012
}
[예제2] - 함수 밖에서 := 기호 사용해 변수 선언 시, 에러 발생
package main
import ("fmt")
host := "Homzzang.com" // 에러 유발
func main() {
fmt.Println(host) // 에러 발생
}
결과값:
# command-line-arguments
.\homzzang.go:4:1: syntax error: non-declaration statement outside function body
Go 다중 변수 선언
1. 자료형 지정 시, 한 줄에 한 가지 유형의 변수만 지정 가능.
package main
import ("fmt")
func main() {
var a, b, c int = 1, 2, 3
fmt.Println(a) // 1
fmt.Println(b) // 2
fmt.Println(c) // 3
}
2. 자료형 지정 안 하면, 한 줄에 여러 자료형 변수 지정 가능.
package main
import ("fmt")
func main() {
var a, b = 1, "홈짱닷컴"
c, d := 2, "Homzzang.com"
fmt.Println(a) // 1
fmt.Println(b) // 홈짱닷컴
fmt.Println(c) // 2
fmt.Println(d) // Homzzang.com
}
Go 블럭 안에서 변수 선언
가독성 높이기 위해, 여러 변수 선언을 그룹으로 블럭화 가능.
package main
import ("fmt")
func main() {
var (
a int
b string = "홈짱닷컴"
c string = "Homzzang.com"
)
fmt.Println(a) // 0
fmt.Println(b) // 홈짱닷컴
fmt.Println(c) // Homzzang.com
}
Go 변수명 작성 규칙
- 짧은 이름(예: x, y) 또는 긴 이름(예: id, name) 가능.
- 문자 또는 밑줄 문자(_)로 시작 필수.
- 숫자로 시작 불가.
- 영문자와 숫자와 밑줄( a-z, A-Z, 0-9, 및 _)만 포함 가능.
- 대소문자 구분함. (예: hz, Hz, HZ은 서로 다른 변수임)
- 길이에는 제한 없음.
- 공백 포함 불가.
- Go 언어의 내장 키워드는 사용 불가.
Go 여러 단어로 변수명 짓기 - (Camel/Pascal/Snake)
2개 이상의 단어 사용해 변수명 작성 시, 가독성 높이는 방법 3가지.
- [Camel Case]
- [Pascal Case]
- [Snake Case]
[Camel Case]
첫 단어 제외한 나머지 단어는 대문자로 시작.
mySiteHost = "Homzzang.com"
[Pascal Case]
각 단어는 대문자로 시작
MySiteHost = "Homzzang.com"
[Snake Case]
각 단어를 언더바(_)로 연결.
my_site_host = "Homzzang.com"
복습 연습문제
※ open 변수에 정수 2012 할당 후 출력
package main
import ("fmt")
func main() {
var open int = 2012
fmt.Println(open)
}
최신댓글