前面二天介紹了go的基本型別,現在來介紹一下go的常數與變數寫法
常數寫法很簡單,只要用const來宣告就行了,
要不要加型別都行喔,golang會自行判斷,
而常數宣告後是不能進行改變值喔,不然會噴錯誤
cannot assign to XXX
func內部的const
package main
import (
"fmt"
)
func main() {
const aa = "test"
const bb string = "GG"
fmt.Println(aa)
fmt.Println(bb)
}
全域常數
package main
import (
"fmt"
)
const aa = "test"
const bb string = "GG"
func main() {
fmt.Println(aa)
fmt.Println(bb)
}
但是slice不能用const來宣告喔,會噴錯,要使用var來宣告
package main
import (
"fmt"
)
const cc = []int64{1, 2, 3, 4, 5}
func main() {
fmt.Println(cc)
}
const initializer []int64 literal is not a constant
golang宣告變數有二種寫法,要使用哪種寫法視情形選擇就好,沒有那種才是正確的寫法~~~
1.使用var來宣告變數
//可以單純宣告變數
var a string
//也可宣告變數並給預設值
var b int64 = 999
如果沒給預設值時,系統會給string -> "",int -> 0 ,bool ->false做預設值
2.使用 := 來宣告
a:= "abc"
b:= 999
package main
import (
"fmt"
)
func main() {
var a string
var b int64 = 999
fmt.Println(a, b)
c := "itzy is good"
d := 12345
fmt.Println(c, d)
}
1.不可以用保留字或是關鍵字,如下表格:
| |
|---|---|---|---|---|---|
|break|default|func |interface|select|var
|case|defer|go|map|struct|return
|chan|else|goto|package|switch|import
|const|fallthrough|if|range|type|for
|continue|||||
|append |bool |byte |cap |close |complex|
|complex64 |complex128 |uint16 |copy| false |float32|
|float64 |imag |int |int8 |int16 |uint32|
|int32 |int64 |iota |len |make |new|
|nil |panic |uint64 |print |println |real|
|recover |string |true |uint |uint8 |uintprt|
2.第一個字要是英文字母或是用底線,不可使用數字當第一位。
3.宣告變數時,第一位的大小寫是有意義的喔,如果以用大寫開頭的話,表示這個變數可以給外面使用,跟c#的public一樣,如果用小寫開頭的話,表示只限自己使用或是func內部使用,跟c#的private一樣,這一點要記得喔~~