1.基礎(chǔ)知識(shí)補(bǔ)充(指針数尿、遞增遞減語(yǔ)句)
指針
go雖然保留了指針,但是與其它編程語(yǔ)言不同的是,在go當(dāng)中不支持指針運(yùn)算以及"->"運(yùn)算符凸主,而直接采用"." 選擇符來(lái)操作指針目標(biāo)對(duì)象的成員
- 操作符"&"取變量地址缴川,使用"*"通過(guò)指針間接訪問(wèn)目標(biāo)對(duì)象
- 默認(rèn)值為nil而非null
在go中茉稠,++與--是作為語(yǔ)句而并不是作為表達(dá)式
a := 1
a++
//但不能這樣:a := a++,只能作為單獨(dú)的語(yǔ)句獨(dú)占一行
2.if判斷語(yǔ)句
條件表達(dá)式?jīng)]有括號(hào)
支持一個(gè)初始化表達(dá)式(可以是并行方式)
左大括號(hào)必須和條件語(yǔ)句或else在同一行
支持單行模式
初始化語(yǔ)句中的變量為block級(jí)別把夸,同時(shí)隱藏外部同名變量
func main(){
a := 10
if a:=1 {
fmt.Println(a)
}
fmt.Println(a)
}
//輸出為: 1 10
3.for循環(huán)語(yǔ)句
- go只有for一個(gè)循環(huán)語(yǔ)句關(guān)鍵字而线,但支持3種形式
//第一種(同其他語(yǔ)言的while true {}):
func main() {
a := 1
for {
a++
if a > 3{
break
}
}
fmt.Println(a)
}
//第二種(同其他語(yǔ)言的:while a <= 3 {}):
func main() {
a := 1
for a <= 3 {
a++
}
fmt.Println(a)
}
//第三種:
func main() {
a := 1
for i := 0; i <= 3; i++ {
a++
}
fmt.Println(a)
}
- 初始化和步進(jìn)表達(dá)式可以是多個(gè)值
4.switch選擇語(yǔ)句
go語(yǔ)言中無(wú)須對(duì)每個(gè)case手動(dòng)書(shū)寫break以阻止程序繼續(xù)向下匹配。如果要達(dá)到繼續(xù)匹配的目的可以使用關(guān)鍵字:fallthrough
func main() {
a := 1
switch a {
case 0:
fmt.Println("a=0")
case 1:
fmt.Println("a=1")
}
fmt.Println(a)
}
func main() {
a := 1
switch {
case a >= 0:
fmt.Println("a=0")
fallthrough
case a >= 1:
fmt.Println("a=1")
}
fmt.Println(a)
}
//此時(shí)a的作用域只在switch表達(dá)式之內(nèi)
func main() {
switch a := 1 {
case a >= 0:
fmt.Println("a=0")
fallthrough
case a >= 1:
fmt.Println("a=1")
}
fmt.Println(a)
}
5.跳轉(zhuǎn)語(yǔ)句
break、continue膀篮、goto 配合標(biāo)簽使用