golang簡介
type Student struct{
name string
age int}
student := Student{ "Bob", 12}
在上面的代碼中,:= 運算符會要求golang檢查變量 student 是否被定義過。如果沒有被定義,golang會自動定義,並賦值;如果該變量已經定義,那麼golang會報錯提示該變量已經被定義過。
從上面代碼中我們還可以看到幾個其他的優點:行尾不需要結束符(如C/C++的“;”, erlang的 “,” 等);定義變量(或新類型)時類型在變量(或新類型)名稱的後面,這樣做的好處是讓開發者更加關心變量(或新類型)本身,而無需太關心其類型,因爲golang會幫你處理大部分類型問題,或通過類型檢查,或通過類型推導。關於語法方面的其他優點,大家可以自行去體會。
2、高效
golang 程序擁有兩種執行方式:解釋執行和編譯執行。解釋執行通過例如go run test.go 的方式來執行 ,go 文件裏的代碼;編譯執行類似於C/C++,直接將代碼編譯成可執行的二進制程序。因此,golang無論是在開發效率還是運行效率上,都有其獨特的優勢。相比C/C++,golang程序擁有更快的開發效率;相比erlang、java、python等,golang程序擁有更好的執行效率。
3、併發
和erlang一樣,golang 天然支持併發處理。golang 語法中的 go 關鍵字即是創建一個併發的 golang 進程,與創建者進程共同處理任務。既然和erlang一樣都是天然支持併發,那麼我們比較下這兩門語言的相似之處和特點:erlang:使用spawn函數創建新進程,進程之間利用進程的pid來進行通信,pid與進程一一對應,這種思想有點類似操作系統中進程pid的思想。golang:使用go 關鍵字創建新進程,進程之間利用channel進行通信,這種思想有點類似生產者、消費者的思想。
4、豐富
這裏的豐富包含兩方面:1)語言本身,綜合了很多語言的特點,如:C/C++的指針、python的無需行結束符、erlang的併發等;2)類庫豐富,除了golang的標準庫能滿足80%以上的需求外,社區還有很多開源的擴展庫和框架。
5、活躍
由於谷歌的關係,以及雲計算、docker的興起,golang社區也保持不錯的活躍度
轉載請註明出處 http://blog.csdn.net/letian0805/article/details/51340768