值得信赖的彩票平台

Go 教程


閱讀(663.4k) 收藏 (334)

多端閱讀:

  • 在PC/MAC上查看 《Go 教程》:
    下載Go 教程離線版客戶端,進入客戶端后通過搜索當前教程手冊的名稱并下載,就可以查看當前離線教程文檔。
  • 在手機上查看《Go 教程》:
  • 在手機APP上查看 《Go 教程》:

    下載w3cschool手機App端 請從各大安卓應用商店、蘋果App Store搜索并下載w3cschool手機客戶端,在App中搜索當前教程手冊的名稱查看。

    App下載

手冊簡介:

Go語言是谷歌推出的一種全新的編程語言。

手冊說明:

Go概述

Go語言是谷歌2009年發布的第二款開源編程語言,它專門針對多處理器系統應用程序的編程進行了優化,它是一種系統語言其非常有用和強大,其程序可以媲美C或C++代碼的速度,而且更加安全、支持并行進程。

Go支持面向對象,而且具有真正的閉包(closures)和反射 (reflection)等功能。

Go可以在不損失應用程序性能的情況下降低代碼的復雜性。

201610211352129904

發表時間: 2009年  

類    型:  開源編程語言  

公    司:  谷歌

官網:http://golang.org

API文檔:https://golang.org/doc/

教程:http://www.sdsyxdcdy.com/go/go-tutorial.html

下載:https://golang.org/dl/

技術社區:https://gocn.io/


目標

Go的目標是希望提升現有編程語言對程序庫等依賴性(dependency)的管理,這些軟件元素會被應用程序反復調用。由于存在并行編程模式,因此這一語言也被設計用來解決多處理器的任務。


功能特點

  • Go語言設計是讓軟件充分發揮多核心處理器同步多工的優點,它可解決面向對象程序設計面臨的麻煩。
  • Go的速度也非常快,幾乎和C或C++程序一樣快,且能夠快速制作程序。
  • Go支持面向對象,而且具有真正的閉包(closures)和反射 (reflection)等功能。
  • Go語言可以在不損失應用程序性能的情況下降低代碼的復雜性。
  • Go語言的另一項與網絡相關的特色,是服務器和用戶端設備,如PC或手機,可以分擔工作。因此,使用Go的服務便可輕松適應不同的用戶端處理性能。
  • Go可以和Native Client配合使用,Go可以讓應用完美的運行在瀏覽器內。例如,使用Go可以更高效的實現Wave,無論是在前端還是后臺。
  • Go 同時具有兩種編譯器,一種是建立在GCC基礎上的Gccgo,另外一種是分別針對64位x64和32位x86計算機的一套編譯器(6g和8g)。谷歌目前正在研發其對ARM芯片和Android設備的支持。


Go有什么優勢

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


Go適合用來做什么

  • 服務器編程,以前你如果使用C或者C++做的那些事情,用Go來做很合適,例如處理日志、數據打包、虛擬機處理、文件系統等。
  • 分布式系統,數據庫代理器等
  • 網絡編程,這一塊目前應用最廣,包括Web應用、API應用、下載應用、
  • 內存數據庫,前一段時間google開發的groupcache,couchbase的部分組建
  • 云平臺,目前國外很多云平臺在采用Go開發,CloudFoundy的部分組建,前VMare的技術總監自己出來搞的apcera云平臺。


Go成功的項目

  • nsq:bitly開源的消息隊列系統,性能非常高,目前他們每天處理數十億條的消息
  • docker:基于lxc的一個虛擬打包工具,能夠實現PAAS平臺的組建。
  • packer:用來生成不同平臺的鏡像文件,例如VM、vbox、AWS等,作者是vagrant的作者
  • skynet:分布式調度框架
  • Doozer:分布式同步工具,類似ZooKeeper
  • Heka:mazila開源的日志處理系統
  • cbfs:couchbase開源的分布式文件系統
  • tsuru:開源的PAAS平臺,和SAE實現的功能一模一樣
  • groupcache:memcahe作者寫的用于Google下載系統的緩存系統
  • god:類似redis的緩存系統,但是支持分布式和擴展性
  • gor:網絡流量抓包和重放工具

團隊成員

Thompson:1983年圖靈獎(Turing Award)和1998年美國國家技術獎(National Medal of Technology)得主。他與Dennis Ritchie是Unix的原創者。Thompson也發明了后來衍生出C語言的B程序語言。

Pike:曾是貝爾實驗室(Bell Labs)的Unix團隊,和Plan 9操作系統計劃的成員。他與Thompson共事多年,并共創出廣泛使用的UTF-8 字元編碼。


Robert Griesemer:曾協助制作Java的HotSpot編譯器,和Chrome瀏覽器的JavaScript引擎V8。


此外還有Plan 9開發者Russ Cox、和曾改善已廣泛使用之開源碼編譯器GCC的Ian Taylor。


Go語言簡史

  • 2007年,谷歌工程師Rob Pike, Ken Thompson和Robert Griesemer開始設計一門全新的語言,這是Go語言的最初原型。
  • 2009年11月10日,Go語言以開放源代碼的方式向全球發布。
  • 2010年1月10日 , Go語言摘得了TIOBE公布的2009年年度大獎。
  • 2011年3月16日,Go語言的第一個穩定(stable)版本r56發布。
  • 2012年3月28日,Go語言的第一個正式版本Go1發布
  • 2013年4月04日,Go語言的第一個Go 1.1beta1測試版發布。
  • 2013年4月08日,Go語言的第二個Go 1.1beta2測試版發布。
  • 2013年5月02日,Go語言Go 1.1RC1版發布。
  • 2013年5月07日,Go語言Go 1.1RC2版發布。
  • 2013年5月09日,Go語言Go 1.1RC3版發布。 
  • 2013年5月13日,Go語言Go 1.1正式版發布。
  • 2013年9月20日,Go語言Go 1.2RC1版發布。
  • 2014年6月19日,Go語言Go 1.3版發布。
  • 2015年8月20日,Go語言Go 1.5版發布,本次更新中移除了”最后殘余的C代碼”。
  • 2016年2月17日 , Go語言Go 1.6版本發布,本次開始全面支持 HTTP/2 國際標準。
  • 2016年8月15日 , Go語言Go 1.7版本發布。


 

支持平臺

硬件架構

Go語言設計支持主流的32位和64位的x86平臺,同時也支持32位的ARM架構。


操作系統

Go語言在Go1版本上支持Windows, 蘋果Mac OS X, Linux和FreeBSD操作系統。


開發工具
LiteIDE

LiteIDE是一款專門為Go語言開發的跨平臺輕量級集成開發環境(IDE),由QT編寫。


Sublime Text

Sublime Text 3(以下簡稱Sublime)+ GoSublime + gocode + MarGo的組合。


Vim

Vim是從vi發展出來的一個文本編輯器,享有“編輯器之神”的稱號。代碼補全、編譯及錯誤跳轉等方便編程的功能特別豐富,在程序員中被廣泛使用。


Emacs

Emacs是由GNU開源組織開發出來的一個文本編輯器,同時更是一個整合環境,曾被人戲稱“一個偽裝成編輯器的操作系統”。


Eclipse

Eclipse也是非常常用的開發利器,可以使用Eclipse來編寫Go程序。


IntelliJ IDEA

熟悉Java的讀者應該對于idea不陌生,idea是通過一個插件來支持go語言的高亮語法,代碼提示和重構實現



問答

1.Go的學習曲線是怎樣的?

   Go不是針對編程初學者設計的,不過Go與Java類似,對于Java開發者來說,應該能夠輕松學會 Go。

2.Go語言為什么開源?

   Go之所以開源目的是開源社區能夠創建更好的GO程序庫和工具。


更新記錄:

返回w3cschool官網主頁

在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號

意見反饋
返回頂部
值得信赖的彩票平台

              灵丘县| 玉溪市| 南昌县| 祁东县| 友谊县| 万山特区| 东平县| 丰原市| 济阳县| 正阳县| 涟源市| 老河口市| 祁阳县| 云和县| 新竹市| 吴川市| 专栏| 台北市|