第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

全部開發(fā)者教程

Go 語言簡介

圖片描述

圖片來源于網(wǎng)絡

學習任何知識之前肯定要對這個知識有一個簡單的了解,當然學習 Go 語言也一樣,這個小節(jié)我們就來簡單認識下 Go 語言,了解下 Go 語言的來龍去脈。

1. Go 語言的出身

Go(又稱 golang)是 Google 開發(fā)的一種靜態(tài)強類型、編譯型、并發(fā)型,并具有垃圾回收功能的編程語言。

羅伯特·格里澤默(Robert Griesemer),羅布·派克(Rob Pike)及肯·湯普遜(Ken Thompson)于 2007 年 9 月開始設計 Go,后來 Ian Lance Taylor、Russ Cox 加入項目。Go 是基于 Inferno 操作系統(tǒng)所開發(fā)的,于 2009 年 11 月正式宣布推出,成為開放源代碼項目,并在 Linux 及 Mac OS X 平臺上進行了實現(xiàn),后來追加了 Windows 系統(tǒng)下的實現(xiàn)。在 2016 年,Go 被軟件評價公司 TIOBE 選為“TIOBE 2016 年最佳語言”。 目前,Go 已經(jīng)開始每半年發(fā)布一個二級版本(即從 a.x 升級到 a.y)。
圖片描述

2. Go 語言的特點

  • Go 語言可以直接編譯成主流操作系統(tǒng)支持的可執(zhí)行文件,部署服務只需要扔一個可執(zhí)行文件上去直接運行就好了;
  • Go 語言有不輸于動態(tài)語言的豐富靜態(tài)庫。歸功于強大的官方團隊和社區(qū),目前 Go 語言幾乎什么都可以開發(fā);
  • Go 語言天生支持并發(fā),這是個近乎無敵的設定;
  • Go 語言具有自動垃圾回收機制;
  • Go 語言簡單易學,因為它幾乎支持常用的語言的所有特性:繼承、封裝等等;
  • Go 語言內(nèi)嵌支持 C 語言,你甚至可以直接在 Go 語言里面寫 C 語言代碼;
  • Go 語言支持交叉編譯,你可以在 Windows 環(huán)境中編譯任何平臺的 Go 可執(zhí)行程序。但是需要注意的是,如果你在 Go 程序中寫了 C 語言,你就不能只用交叉編譯的特性了,所謂魚和熊掌不可兼得嘛。

3. Go 語言的使用場景

  • 服務器編程;
  • 分布式系統(tǒng),數(shù)據(jù)庫代理器;
  • 網(wǎng)絡編程,這一塊目前應用最廣,包括 Web 應用、API 應用、下載應用;
  • 內(nèi)存數(shù)據(jù)庫,前一段時間 Google 開發(fā)的 groupcache,couchbase 的部分組件;
  • 云平臺,目前國外很多云平臺在采用 Go 開發(fā),CloudFoundy 的部分組件,前 VMare 的技術總監(jiān)自己出來搞的apcera 云平臺;
  • 區(qū)塊鏈技術研發(fā)。

4. Go 語言開發(fā)的經(jīng)典項目

  • Docker:基于 lxc 的一個虛擬打包工具,能夠?qū)崿F(xiàn) PAAS 平臺的組建。
  • Hyperledger fabric:市面上最流行的兩大區(qū)塊鏈平臺之一。

5. 與其他開發(fā)語言對比

Go 語言為什么能在現(xiàn)有的成熟語言中脫穎而出呢?這要歸功于它比 Java 還簡潔的語法,接近 C 語言的編譯執(zhí)行速度,甚至還有不亞于腳本語言的開發(fā)速度。在目前最要求效率的當下,它無疑會是一匹黑馬。但是和其它語言比起來劣勢也很明顯,因為它出現(xiàn)的時間短,學習資料少,第三方支持庫雖然多,但是比起 Java 以及 C 語言還是遠遠不夠。Go 語言不支持泛型,對于學習 Java 的開發(fā)人員來說一開始會很不適應。

6. 為什么要學習 Go 語言

綜上所述, Go 語言出身名門,血統(tǒng)純正。從學習難度上來說語法簡單,功能強大。從可擴展性上來說第三方庫眾多,標準庫強大穩(wěn)定。性能上更是擁有無可挑剔的自動調(diào)度線程。Go 語言完美地協(xié)調(diào)了運行效率和開發(fā)效率之間的關系。而且 Go 語言目前已經(jīng)廣泛應用于虛擬容器、區(qū)塊鏈等傳統(tǒng)的和高精尖的產(chǎn)業(yè)中,將來會有巨大的前景。不管是國內(nèi)還是國外,對 Go 語言的程序員的需求只會越來越多。

7. Go 語言的代碼

接下來我們來看看 Go 語言怎么用代碼來和你 say hello。

package main

import "fmt"

func main() {
    fmt.Println("Hello Codey !")
}

上述代碼的輸出結(jié)果就是:Hello Codey !

8. 小結(jié)

Go 語言目前的用途主要是在服務器和區(qū)塊鏈上。但是它的功能不止于此,需要我們多去開發(fā)多去使用,使得 Go 語言的生態(tài)更加完整,更加強大。