- 변수 이름 대소문자 구별
- Pascal, camelCase 이름 표기 권장
- Pascal - 모든 단어의 앞자가 대문자
- camelCase - 앞단어를 제외한 첫자를 대문자
- 소문자로 시작하면 패키지 레벨 범위, 대문자로 시작하면 패키지 넘어 범위
- 패키지 레벨 이상의 범위를 가지거나 오래 살아 남는 변수명은 관례상 길게 작성한다.
- 약자는 모두 대문자로 작성한다. eg. theURL, theHTTP, theHttpRequest
package main
import (
"fmt"
)
// package level variable declaration
var i int = 0
var I int = 9
func main() {
fmt.Println(i)
var i int = 1
fmt.Println(i)
fmt.Println(I)
fmt.Println("==========")
// variable type conversion
i = 42
fmt.Printf("%v, %T\n", i, i)
var j float64
j = float64(i)
fmt.Printf("%v, %T\n", j, j)
}
// 결과
//
// 0
// 1
// 9
// ==========
// 42, int
// 42, float64
package main
import (
"fmt"
)
func main() {
// Go 에서는 선언 이후 자동으로 zero로 초기화
// 불리언 타입의 zero는 false
var b bool
fmt.Printf("%v, %T\n", b, b)
}
// 결과
//
// false, bool
package main
import (
"fmt"
)
func main() {
// string is immutable
s := "I am a string"
fmt.Printf("%v, %T\n", s, s)
// error
// s[2] = "u"
}
// 결과
//
// I am a string, string
- byte slice (웹 서버 응답 등에 자주 사용)
package main
import (
"fmt"
)
func main() {
// byte slice
strs := "I am a string"
sb := []byte(strs)
fmt.Printf("%v, %T\n", sb, sb)
}
// 결과
//
// [73 32 97 109 32 97 32 115 116 114 105 110 103], []uint8
package main
import (
"fmt"
)
func main() {
// rune type
r := 'a' // UTF-32
str := "s"
fmt.Printf("%v, %T\n", r, r)
fmt.Printf("%v, %T\n", str, str)
}
// 결과
//
// 97, int32
// s, string
package main
import (
"fmt"
)
func main() {
const myConst int = 1
const yourConst float64 = math.Pi
fmt.Printf("%v, %T\n", myConst, myConst)
fmt.Printf("%v, %T\n", yourConst, yourConst)
}
// 결과
//
// 1, int
// 3.141592653589793, float64
package main
import (
"fmt"
)
// package level enumerated constant
const (
a = iota
b
c
d
)
func main() {
fmt.Printf("%v\n", a)
fmt.Printf("%v\n", b)
fmt.Printf("%v\n", c)
fmt.Printf("%v\n", d)
}
// 결과
//
// 0
// 1
// 2
// 3
// Test70
package main
import (
"fmt"
)
const (
SCV = iota
Marine
Firebat
Medic
Ghost
Vulture
SiegeTank
Goliath
)
func main() {
var thisUnit int = Marine
fmt.Printf("%v\n", thisUnit == Marine)
}
// 결과
//
// true
- There are multiple ways to assign or declare variables
package main
import (
"fmt"
)
func main() {
/* There are multiple ways to assign or declare variables */
// one way - declare, then assign (two steps)
var firstNumber int
firstNumber = 2
// another way, declare type and name and assign value
var secondNumber int = 5
// one step variable: declare name, assign value, and let Go figure out the type
subtraction := 7
fmt.Println("Hello World!")
}
댓글 영역