區塊鏈基礎語言(一)——Go語言簡介

1、什麼是Go語言

Go語言,也叫做Golang,它是21世紀的C語言。Go語言讓程序員在寫代碼過程當中更加高效,並且它優化了多處理器系統的應用程序,使其能夠媲美C或C++代碼程序的速度。另外,它更加安全地支持並行進程。程序員

項目選擇語言時,開發人員只能在程序地快速開發和程序的性能之間二選一。例如:C和C++這類語言性能好,而Ruby和Python這類語言則擅長快速開發。而Go語言在這二者之間架起了橋樑,不只提供了高性能的語言,同時也讓開發更加快速。golang

總得來講,Go語言是一門編譯型的系統編程語言,具備靜態編譯語言的高性能和動態語言的高效開發雙重特色。編程

‍2、Go語言的演變歷史‍

2007年google內部項目數組

Go做爲一個20%項目開始研發,即讓員工抽出本職工做以外時間的20%投入在該項目上。谷歌首席軟件工程師Rob Pike說:咱們之因此開發Go,是由於過去10多年間軟件開發的難度使人沮喪。安全

2008年3月閉包

初版語言規範起草。併發

2009年11月10日編程語言

Go語言正式成爲開源編程語言家庭的一員。函數

2015年8月19日性能

Go 1.5版發佈,移除了「最後殘餘的C代碼」。

2018年2月16日

Go 1.10版發佈。

‍3、Go語言特性‍

自動垃圾回收

在Go語言中,系統會自動判斷什麼時候須要釋放以前分配的內存空間,並在CPU相對空閒時對不使用的內存進行收集。

豐富的內置類型

在Go語言中,內置類型包含:整型,浮點型,數組,字符串,字典map,切片slice。

由於語言的內置特性,開發者不用添加依賴的包,讓代碼更簡潔。

函數多返回值

Go語言是靜態開發語言中率先提供多返回值功能的語言。若是開發者只關心函數中的某幾個返回值,能夠直接使用下劃線做爲佔位符忽略其餘不關心的返回值。

異常處理

異常處理涉及3個關鍵字:error、panic和recover。其中error報告程序中的普通錯誤,panic報告程序中的致命性錯誤,而recover可讓程序從panic狀態中恢復。

匿名函數與閉包

匿名函數就是沒有定義函數名的一種函數。而在Go語言中,閉包就是匿名函數,它能夠經過匿名函數「捕獲」和它在同一做用域的其它常量和變量。

結構體

結構體是一系列具備相同或不一樣類型的數據構成的數據集合。例如,能夠利用結構體定義一個學生的學號/姓名/性別/年齡等屬性。

接口

接口是具體描述一系列方法的集合。例如,能夠利用接口將一我的的說、唱這些行爲集中到一塊兒。

併發編程

併發編程,就是在同一時刻只能有一條指令執行,但多個進程指令被快速的輪換執行,使得在宏觀上具備多個進程同時執行的效果,但在微觀上並非同時執行的,只是把時間分紅若干段,使多個進程快速交替的執行。如圖1所示。

Golang從語言級別上對併發提供了支持,goroutine是Go併發設計的核心,而goroutine就是Go語言實現的協程。在Go程序裏,只須要在函數調⽤語句前添加關鍵字「go」,就可建立併發執⾏單元。

 

 

 

 

反射功能

反射是經過reflect包實現的,reflect包定義了兩種反射類型:Type和Value。經過反射機制,能夠獲取接口變量存儲的類型以及相應的值。

‍4、Go語言目前的實際應用‍

已用Go開發服務端的著名企業

▪ 谷歌——Youtube後臺服務端程序

▪ 盛大——盛大雲計算

▪ 小米——小米搶購系統、日誌平臺

▪ dotCloud——Docker

‍5、Go語言資源和學習資料‍

5.1 go語言項目資源

▪ 愛好者開發的Go論壇及博客

▪其它海量開源項目網站:go-wiki、Go Walker、Go Language Resources

5.2 go語言學習資料

▪ Go語言官網:

▪ go中文社區: 

▪ go中文在線文檔:

 

參考資料

[1] 許式偉,呂桂華.Go語言編程[M].北京:人民郵電出版社,2012:2-10.

相關文章
相關標籤/搜索