注釋
Go語言使用C++風(fēng)格注釋:
- // 表示單行注釋衣迷,到行位結(jié)束
- /***/表示多行注釋
標(biāo)識(shí)符
Go標(biāo)識(shí)符是一個(gè)非空的字母或數(shù)字串,其中第一個(gè)字符必須為字母酱酬,該標(biāo)識(shí)符也不能是關(guān)鍵字的名字壶谒。
字母可以是一個(gè)下劃線_,或者Unicode編碼分類中的任何字符膳沽。
關(guān)鍵字
基本在所有語言當(dāng)中汗菜,關(guān)鍵字都是不允許用于自定義的,下面列出go的25個(gè)關(guān)鍵字:
除了以上介紹的這些關(guān)鍵字挑社,Go 語言還有 36 個(gè)預(yù)定義標(biāo)識(shí)符:
常量
常量是一個(gè)簡單值的標(biāo)識(shí)符呵俏,在程序運(yùn)行時(shí),不會(huì)被修改的量滔灶,常量使用關(guān)鍵字const
聲明普碎。
常量中的數(shù)據(jù)類型只可以是布爾型、數(shù)字型(整數(shù)型录平、浮點(diǎn)型和復(fù)數(shù))和字符串型麻车。
常量的定義格式:
const identifier [type] = value
實(shí)例:
const limit = 512 // 常量,其類型兼容任何數(shù)字
const top uint16 = 1421 // 常量斗这,類型為uint16
const (
a = 0
b = "hello"
c = false
)
注意:在定義常量組時(shí)动猬,如果不提供初始值,則表示將使用上行的表達(dá)式表箭。
package main
import "fmt"
const (
a = 1
b
c
d
)
func main() {
fmt.Println(a)
// b赁咙、c、d沒有初始化,使用上一行(即a)的值
fmt.Println(b) // 輸出1
fmt.Println(c) // 輸出1
fmt.Println(d) // 輸出1
}
變量
變量可以使用關(guān)鍵字var
聲明彼水,也可以使用快捷變量聲明語法崔拥。Go語言可以自動(dòng)推斷出所聲明變量的類型,下面是一些聲明的例子:
start := -19 // 變量凤覆,推斷類型為int
end := int64(2343456237) // 變量链瓦,類型為int64
var i int // 變量,值為0盯桦,類型為int
var debug = false // 變量慈俯,推斷類型為bool
checkResults := true // 變量,推斷類型為bool
stepSize := 1.5 // 變量拥峦,推斷類型為float64
acronym := "FOSS" // 變量贴膘,推斷類型為string
變量默認(rèn)值
- 數(shù)值類型(包括complex64/128)為 0
- 布爾類型為 false
- 字符串為 ""(空字符串)
以下幾種類型為 nil:
var a *int
var a []int
var a map[string] int
var a chan int
var a func(string) int
var a error // error 是接口
多變量聲明
//類型相同多個(gè)變量, 非全局變量
var vname1, vname2, vname3 type
vname1, vname2, vname3 = v1, v2, v3
var vname1, vname2, vname3 = v1, v2, v3 // 和 python 很像,不需要顯示聲明類型,自動(dòng)推斷
vname1, vname2, vname3 := v1, v2, v3 // 出現(xiàn)在 := 左側(cè)的變量不應(yīng)該是已經(jīng)被聲明過的略号,否則會(huì)導(dǎo)致編譯錯(cuò)誤
// 這種因式分解關(guān)鍵字的寫法一般用于聲明全局變量
var (
vname1 v_type1
vname2 v_type2
)
實(shí)例:
package main
var x, y int
var ( // 這種因式分解關(guān)鍵字的寫法一般用于聲明全局變量
a int
b bool
)
var c, d int = 1, 2
var e, f = 123, "hello"
//這種不帶聲明格式的只能在函數(shù)體中出現(xiàn)
//g, h := 123, "hello"
func main(){
g, h := 123, "hello"
println(x, y, a, b, c, d, e, f, g, h)
}
枚舉
需要設(shè)置多個(gè)常量的時(shí)候刑峡,我們不必重復(fù)使用const
關(guān)鍵字,只需使用const
關(guān)鍵字一次就可以將所有常量聲明組合在一起:
const {
Cyan = 0
Magenta = 1
Yellow = 2
}
也可以通過iota
為一組常量設(shè)置連續(xù)增長的int值:
const {
Cyan = iota // 0
Magenta // 1
Yellow // 2
}