Go
是一種開源編程語言,能夠輕鬆構建簡單,可靠,高效的軟件.php
摘錄自 github: https://github.com/golang/go,其中官網(國外): https://golang.org 和官網(國內): https://golang.google.cn/
Go
是 Google
公司推出的靜態強類型,編譯型,併發型,並具備垃圾回收功能的開源編程語言,最初由 Robert Griesemer
, Rob Pike
,Ken Thompson
三人主持開發,後來陸續加入其餘開發者,最終於 2009 年 11 月正式開源.html
Go
的三位主要創始人分別是: 羅伯特·格瑞史莫(Robert Griesemer
),和肯·湯普遜(Ken Thompson
)git
Robert Griesemer
)JS V8
引擎,Chubby
,Java HotSpot
虛擬機,Sawzall
語言和 Strongtalk
系統github
github: https://github.com/griesemer
Rob Pike
)Plan 9
操做系統和UTF-8
編碼golang
github: https://github.com/robpike
Ken Thompson
)UNIX
操做系統 ,Plan 9
操做系統,B
語言,UTF-8
編碼docker
github: https://github.com/ken
如此厲害的三位大牛合做創做的 Go
語言還能差到哪裏去呢?編程
原來的 logo
是一隻可愛的囊地鼠,英文名叫 gopher
.安全
新的 logo
是現代化圖標,表明更快更強,體現速度和效率.網絡
網上流傳甚廣的一組很萌很可愛的吉祥物,並附上 github 連接: https://github.com/tenntenn/gopher-stickers併發
fmt.Println("Hello, 世界")
: 輸出字符串並換行
package main import "fmt" func main() { fmt.Println("Hello, 世界") }
a, b = b, a
: 互換變量a
和b
的值,而其餘語言通常都須要引入臨時變量.
package main import "fmt" func main() { var a = 3 var b = 4 fmt.Println(a, b) a, b = b, a fmt.Println(a, b) }
go
+chan
關鍵字輕鬆完成並行計算
package main import ( "fmt" "math" ) func main() { fmt.Println(pi(5000)) } func pi(n int) float64 { ch := make(chan float64) for k := 0; k <= n; k++ { go term(ch, float64(k)) } f := 0.0 for k := 0; k <= n; k++ { f += <-ch } return f } func term(ch chan float64, k float64) { ch <- 4 * math.Pow(-1, k) / (2*k + 1) }
Go
語言是雲計算時代的 C
語言也稱爲21 世紀的 C
語言,因而可知,Go
的地位非同通常.
Go
語言的誕生是爲了提升生產效率,專門對多處理器系統應用程序的編程進行了優化,使用Go編譯的程序能夠媲美C或C++代碼的速度,並且更加安全,支持並行進程.
運行效率高是由於編譯性語言與解釋性語言相比,開發高效是語法簡單,部署簡單是直接部署編譯後的程序.
不一樣於 php,只須要 go 配合 channel 便可完成進程或線程所作的工做.
runtime
並支持垃圾回收
相似
Java
虛擬機支持垃圾回收,沒必要手動進行內存管理.
學習成本低,語法簡單但表達能力強,支持函數式編程,面向對象編程等多種編程範式.
gofmt
),跨平臺編譯,內嵌C
支持.不一樣的人有不一樣的代碼風格,可轉化統一風格
Docker
: 是爲開發人員構建和運行應用程序而構建的平臺https://www.docker.com/
Kubernetes
: 自動化容器部署,擴展,管理的應用程序https://kubernetes.io/
Etcd
: 分佈式鍵值對存儲系統https://etcd.io/
baidu-netdisk-downloaderx
: 一款圖形界面的百度網盤不限速下載器,支持 Windows
, Linux
和 Mac
https://github.com/b3log/baidu-netdisk-downloaderx
pan-light
: 百度網盤不限速客戶端, golang + qt5
, 跨平臺圖形界面https://github.com/peterq/pan-light
go
和 golang
是什麼關係?go
是 golang
的簡稱,golang
是 go language
的縮寫,即 go 語言
.
go
的經常使用 IDE
有哪些?獨立集成工具主要有 LiteIDE
和 GoLand
兩種,可是常見 IDE
基本上均提供各類 Go
插件,支持 Windows
,MacOS
和 Linux
常見操做系統.
go
的常見 Web
開發框架有哪些?Beego
,Iris
和 Gin
等,國人用的比較可能是 Beego
,目前資料也比較齊全.
Go
是 Google
出品的開源編程語言,出身名門註定不凡,而且擁有十分活躍的社區環境.
國內使用 Go
語言比較早的公司主要有七牛雲和 beego
,其中七牛雲主要是雲存儲方面的業務,這也正是 Go
支持高併發分佈式的特點,而 Beego
是 Go
的 Web
開發框架,支持 MVC
編程模型,不愧是國人開發深受國人喜好.
同時,今年著名的 bilibili
源代碼泄露事件也讓咱們看到了 Go
的身影,側面說明了 Go
愈來愈流行,不愧是 21 世紀的 C
語言啊!
好了,暫時沒有別的廢話了,本文到此爲止,下一章將開始介紹 Go
語言的環境搭建與 IDE
的基本配置,敬請期待.