1. 程式人生 > >Go -- 初識 Go 語言

Go -- 初識 Go 語言

Go 語言介紹

Go 語言是什麼

2009 年 11 月 10 日,Go 語言正式成為開源程式語言家庭的一員。

Go 語言(或簡稱 Golang)是雲端計算時代的 C 語言。Go 語言的誕生是為了讓程式設計師有更高的生產效率,Go 語言專門針對多處理器系統應用程式的程式設計進行了優化,使用Go編譯的程式可以媲美C或C++程式碼的速度,而且更加安全、支援並行程序。

開發人員在為專案選擇語言時,不得不在快速開發和效能之間做出選擇。C 和 C++ 這類語言提供了很快的執行速度,而 Ruby 和 Python 這類語言則擅長快速開發。Go 語言在這兩者間架起了橋樑,不僅提供了高效能的語言,同時也讓開發更快速。

Go 語言優勢

  • 可以直接編譯成機器碼,不依賴其他庫,glibc 的版本有一定要求,部署就是扔一個檔案上去就完成了。
  • 靜態型別語言,但是有動態語言的感覺,靜態型別的語言就是可以在編譯的時候檢查出來隱藏的大多數問題,動態語言的感覺就是有很多的包可以使用,寫起來的效率很高。
  • 語言層面支援併發,這個就是 Go 最大的特色,天生的支援併發。Go 就是基因裡面自持的併發,可以充分的利用多核,很容易的使用併發。
  • 內建 runtime,支援垃圾回收,這屬於動態語言的特性之一吧,雖然目前來說GO(記憶體垃圾回收機制)不算完美,但是足以應付我們所能遇到的大多數問題,特別是 Go 1.1 之後的 GC。
  • 簡單易學,Go 語言的作者都有 C 的基因,那麼 Go 自然而然就有了 C 的基因,那麼 Go 關鍵字是 25 個,但是表達能力很強大,幾乎支援大多數你在其他語言見過的特性:繼承、過載、物件等。
  • 豐富的標準庫,Go 目前已經內建了大量的庫,特別是網路庫非常強大。
  • 內建強大的工具,Go 語言裡面內建了很多工具鏈,最好的應該是 gofmt 工具,自動化格式化程式碼,能夠讓團隊 review 變得如此的簡單,程式碼格式一模一樣,想不一樣都很困難。
  • 跨平臺編譯,如果你寫的 Go 程式碼不包含 cgo,那麼就可以做到 windows 系統編譯 linux 的應用,如何做到的呢?Go 引用了 plan9 的程式碼,這就是不依賴系統的資訊。
  • 內嵌 C 支援,Go 裡面也可以直接包含 C 程式碼,利用現有的豐富的 C 庫。

Go 適合用來做什麼

  • 伺服器程式設計,以前你如果使用 C 或者 C++ 做的那些事情,用 Go 來做很合適,慄如處理日誌、資料打包、虛擬機器處理、檔案系統等。
  • 分散式系統,資料庫代理器等。
  • 網路程式設計,這一塊目前應用最廣,包括 Web 應用、API 應用、下載應用。
  • 記憶體資料庫,如 Google 開發的 groupcache、couchbase 的部分組建。
  • 雲平臺,目前國外很多雲平臺在採用 Go 開發,CloudFoundy 的部分元件,前 VMware 技術總監自己出來搞得 apcera 雲平臺。

環境搭建

安裝和設定

標準命令概述

Go 語言