區塊鏈研發工程師html
Go服務器端/遊戲軟件工程師linux
Golang分佈式/雲計算軟件工程師c++
區塊鏈的應用開發數據庫
區塊鏈技術,簡稱BT(Blockchain technology).也被稱之爲分佈式帳本技術,是一種互聯網數據庫技術,其特色是去中心化、公開透明,讓每一個人都可參與數據庫記錄。編程
後臺服務器引用vim
如美團後臺流量支撐程序、仙俠道遊戲服務端windows
雲計算/雲服務後臺應用安全
盛大雲CDN(內容分發網絡)、京東消息推送雲服務和京東分佈式文件系統bash
1)計算機硬件技術更新頻繁,性能提升很快。目前主流的編程語言發展明顯落後於硬件,不能合理利用多核多CPU的優點提高軟件系統性能。服務器
2)軟件系統複雜度愈來愈高,維護成本愈來愈高,目前缺少一個足夠簡潔高效的編程語言。[現有的編程語言: 1.風格不統一2. 計算能力不夠3.處理大併發不夠好之中]。
3)企業運行維護不少c/c++的項目,c/c++程序運行速度雖然很快,可是編譯速度確很慢,同時還存在內存泄漏的一系列的困擾須要解決。
Go語言保證了既能到達靜態編譯語言的安全和性能,又達到了動態語言開發維護的高效率,使用一個表達式來形容Go語言: Go=C + Python,說明Go語言既有C靜態語言程序的運行速度,又能達到Python動態語言的快速開發。
從C語言中繼承了不少理念,包括表達式語法,控制結構,基礎數據類型,調用參數傳值,指針等等,也保留了和C語言同樣的編譯執行方式及弱化的指針。
func testPtr(num *int) { *num = 20 }
引入包的概念,用於組織程序結構,Go語言的一個文件都要歸屬於一一個包,而不能單獨存在。
垃圾回收機制,內存自動回收,不需開發人員管理
自然併發(重要特色)
(1)從語言層面支持併發,實現簡單
(2) goroutine,輕量級線程,可實現大併發處理,高效利用多核。
(3)基於CPS併發模型(Communicating Sequential Processes)實現
吸取了管道通訊機制,造成Go語言特有的管道channel經過管道channel,能夠實現不一樣的goroute之間的相互通訊。
函數能夠返回多個值
//函數實現同時返回和,差 func getSumAndSub(n1 int, n2 int) (int, int) { sum:= n1 + n2 /o語句後面不要帶分號 sub:=n1 -n2 return sum, sub }
新的創新:好比切片slice、延時執行defer
Windows
下載SDKgo1.9.2.windows-amd64.zip
,直接解壓。Window需配置3個環境變量,配置完環境變量後,cmd運行go version顯示版本即安裝成功。
GOROOT | 指定SDK的安裝路徑 |
---|---|
PATH | 指定SDK的bin目錄 |
GOPATH | go項目的工做路徑 |
Linux
下載SDKgo1.9.2.linux-amd64.tar.gz
,解壓,配置系統環境變量,source /etc/profile,執行go version顯示版本即安裝成功
vim /etc/profile export GOROOT=/opt/go ###SDK的安裝目錄 export PATH=$PATH:$GOROOT/bin export GOPATH=$HOME/goproject
1) Go源文件以「go」爲擴展名。
2)Go應用程序的執行入口是main()函數。
3)Go語言嚴格區分大小寫
4)Go方法由一條條語句構成,每一個語句後不須要加分號(Go語言會在每行後自動加分號)。
5)Go編輯器是一行行進行編譯的,所以咱們一行只能寫一條語句,不然會報錯
6)go語言定義的變量或者import的包若是沒有用到,代碼不能編譯經過。
1)\t : 表示一個製表符,一般使用它能夠排版。
2)\n :換行符
3) \ \ :一個\
4) \ " :一個"
5) \r :一個回車
行註釋://
塊註釋:/* 註釋內容 */