1.元組賦值
a, b := 1, 2 //右邊被封裝為元組,左邊解構(gòu)賦值
fmt.Println(a, b) //1 2
a, b = b, a //右邊被封裝為元組虹茶,左邊解構(gòu)賦值
fmt.Println(a, b) //2 1
func fib(n int) int {
x, y := 0, 1
for i := 0; i < n; i++ {
x, y = y, x+y
}
return x
}
2. 未使用的變量以及包編譯報(bào)錯(cuò)
Go中定義了未使用的局部變量或者導(dǎo)入了未使用的包讨跟,編譯時(shí)都會(huì)報(bào)錯(cuò)
3. 代碼格式統(tǒng)一
例如go對(duì)函數(shù)頭處的{
做了規(guī)定必須位于首行
fun a() int {
xxx
}
自增诗轻,自減只有a++
或者a--
寫法
4. 容器
- Go語(yǔ)言標(biāo)準(zhǔn)庫(kù)提供了數(shù)組(等于Java的數(shù)組苞笨,定長(zhǎng))稠腊、切片(等于Java的List东跪,變長(zhǎng))畸陡、映射(等于Java的HashMap)、列表(等于Java的LinkList).
- C語(yǔ)言沒(méi)有提供容器封裝虽填,開發(fā)者需要自己根據(jù)性能需求進(jìn)行封裝丁恭,或者使用第三方提供的容器。
- C++ 語(yǔ)言的容器通過(guò)標(biāo)準(zhǔn)庫(kù)提供斋日,如 vector 對(duì)應(yīng)數(shù)組牲览,list 對(duì)應(yīng)雙鏈表,map 對(duì)應(yīng)映射等恶守。
- C# 語(yǔ)言通過(guò) .NET 框架提供第献,如 List 對(duì)應(yīng)數(shù)組,LinkedList 對(duì)應(yīng)雙鏈表兔港,Dictionary 對(duì)應(yīng)映射庸毫。
- Lua 語(yǔ)言的 table 實(shí)現(xiàn)了數(shù)組和映射的功能,Lua 語(yǔ)言默認(rèn)沒(méi)有雙鏈表支持衫樊。
- Java語(yǔ)言JDK提供了各種容器的實(shí)現(xiàn)飒赃,當(dāng)然如果覺(jué)得性能不滿足,也有大把的第三方實(shí)現(xiàn)