C++,Python,Golang對照學習-01

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。好吧其實學Go只是為了好玩,只是為了好玩,學習過程中不免會把其他我懂的語言的思維定勢和習慣帶進來,由此有了這篇對照學習的記錄,就當是留下學習的腳印吧.
這裡所提及的語言特性在C++指最新的C++11標準,Python指Python3.x(2.x沒學),Go是最新的1.1


變數聲明
Go中變數聲明的時候順序是 變數名 -> 變數類型,並且可以忽略變數類型又結果進行推斷如 a := 5 這個時候a就是int類型
C++中變數聲明的順序是 變數類型 -> 變數名. 可以通過auto關鍵字推斷出變數類型 如 auto a = 5; 這個時候a是int
Python中所有變數的聲明都是不需要用關鍵字指定變數類型的

defer
在Go中defer關鍵字用於延遲一個函數或者方法的執行,它會在外圍函數或者方法返回之前返回其值(如果有).我想表示的是,第一次使用它的時候感覺這傢伙像極了shared_ptr,而且要比shared_ptr要輕便.
shared_ptr可以指定一個析構時的刪除器,在刪除器中可以作一些資源釋放的事情,以確保不管是以何種方式離開範圍(正常離開,發生異常)都可以使得資源能夠正確釋放.
Python...額嗯你根本不知道資源什麼時候能釋放..


range
在Go中,range是一個關鍵字,它總是返回兩個值,一個是下標一個是具體的值
func main() {list := []int{10, 11, 12, 13, 14, 15}for key, value := range list {fmt.Println("key:", key, "value:", value)}}


輸出:
key: 0 value: 10
key: 1 value: 11
key: 2 value: 12
key: 3 value: 13
key: 4 value: 14
key: 5 value: 15

Python中range則是一個函數返回一個從0開始指定長度的連續整數序列,聽起來有點拗口來幾個例子就瞭然了
a = range(0,10)for value in a:print(value)


結果是0,1,2,3,4,5,6,7,8,9
c++中木有這貨,但是C++提供了類似功能的範圍迭代
int a[] = {0,1,2,3,4,5,6,7,8,9};for(auto i : a){    cout << i << " ";}


//0 1 2 3 4 5 6 7 8 9


切片
額嗯Go中的切片和Python的大類.有Python基礎很容易入門的說


並發
Go是語言本身支援並發而Python和C++都是以庫的形式實現並發.在Go中實現並發真他媽的簡單.......

這些只是其中的一部分,其他部分以後有時間再陸陸續續寫吧.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.