從python轉golang開發已經3個月了,由於寫過c++,因此對golang接受的還算快,這段經歷也不是很痛苦。伯樂在線上看了一些大神關於python轉golang過程當中的不適應和吐槽,決定寫下篇博客。接下來,我會列出golang開發過程當中與python的不一樣點,主要是在語法方面,golang的一些語法真是要人命啊。python
1.golang可讀性很強,與或對應&&, ||這也使得golang看起來更像傳統編程語言,而不是python的or,andc++
2.很難修改字符串,須要的話就重排吧golang
3.字符串常常須要在string和[]byte之間來回轉換,數字轉字符串必須用strconv編程
4.if,else,elif必須和配對的 { 在同一行json
5.無時無刻不在使用自定義的struct,初始化結構體要用,json轉成數據結構也要用,若是json轉成的是複合結構還要嵌套struct,不少時候strcut來當python中的map用數組
6.定義type test struct,想獲得一個test的數組,要使用[]*test,而不是[]test數據結構
7.struct及其裏面的元素的首字母要大寫,否則極可能訪問不到編程語言
8.golang的map比python難用多了,沒有dict.keys(),沒有dict.values(),想把map轉成別的結構只能遍歷map函數
9.聲明並賦值使用:=spa
10.沒有set,沒有tuples,要常常使用slices
11.沒有__getattr,要常常檢查是否存在
12.引用的包,聲明的變量必須都的使用,否則編譯都沒法經過
13.數組沒有[:-1]、[::-1]、a,b,c=[1,2,3]這些靈活的用法
14.若是能肯定函數返回的類型,就不要用interface{},哪怕結構很複雜,也要使用strcut來返回。若是返回interface{},那麼string(),for遍歷這些基礎用法都無法使用了
15.空指針是nil,python中的None在golang用nil代替,常常寫err != nil判斷是否出錯
就想到這麼多,但願對你們有所幫助~