go 在語法中做了改變, 官方的說法是, 改這樣的原因是因為這樣比較好閱讀. 接著來比較 c 和 go 的語法
以宣告 variable 來看
int add; //c
var add int //go
go 還多一個 var, 似乎也沒有比較方便
以 function 來看
int add(int a, intb); //c
func add(a int, b int)int //go
也還好, 不過比較起來 go 比較容易分辨出是 variable 還是 function, 但是差距也沒有很大, 而且 go 還需要多打字.
如果宣告一個 function pointer 然後輸入一個 function pointer 變數
int (*fp)(int (*ff)(int x, int y), int b) //c
f func(func(int,int) int, int) int //go
c 已經有點讓人混亂了, 且不好閱讀.
go 這樣是不是有比較清楚?
個人是覺得有, 還很明顯.
再加個回傳 function pointer 的宣告比較.
int (*(*fp)(int (*)(int, int), int))(int, int) //c
f func(func(int,int) int, int) func(int, int) int //go
結論 : 真的有差.