因為基本從c#/javascript/c/c++/python/lua/action script,一路走來,對所有的C系列的語法既熟悉又有好感;
那在看語言的時候肯定會與C系列的東西進行類比,那就總結一下go語言與C比的特別之處
- 宣告變數常量及函式型別時放在名稱的後面,這點有點類似as3,只不過把as3宣告變數時的那冒號去掉而已
- 只能定義結構體及函式,沒有類這種東西,就是說,函式和成員變數不能放一塊,這一點和C一樣
- if及for等子句的條件,不需要使用括弧包起來,這點和python2一樣
- 迴圈子句只用for,但是這個for比較特殊,可以使用裡面有兩個分號,或者直接什麼條件都不帶變成while(true)的
- 跟python一樣,函式可以使用多返回值,宣告變數及賦值可以一行多個
- 跟python一樣,很多系統函式實現基本一致的功能,len獲得陣列、字元符的長度,range可以獲得迴圈的迭代器,make可以產生map例項。如m := make(map[string]int)
- 跟python一樣,有個delete,只不過是這麼用的delete(m, "Answer")
- 跟python一樣,內建了字串、陣列、map
- 更特別的是這個內建的map居然是個std::multimap,調一次相同key,再調一次就會變成下面那個