Go是一種新的語言,一種并發(fā)的、帶垃圾回收的、快速編譯的語言。它可以在一臺計(jì)算機(jī)上用幾秒鐘的時間編譯一個大型的Go程序。Go為軟件構(gòu)造提供了一種模型,它使依賴分析更加容易,且避免了大部分C風(fēng)格include文件與庫的開頭。Go是靜態(tài)類型的語言,它的類型系統(tǒng)沒有層級。因此用戶不需要在定義類型之間的關(guān)系上花費(fèi)時間,這樣感覺起來比典型的面向?qū)ο笳Z言更輕量級。Go完全是垃圾回收型的語言,并為并發(fā)執(zhí)行與通信提供了基本的支持。按照其設(shè)計(jì),Go打算為多核機(jī)器上系統(tǒng)軟件的構(gòu)造提供一種方法。
Go(又稱Golang)是Google開發(fā)的一種靜態(tài)強(qiáng)類型、編譯型、并發(fā)型,并具有垃圾回收功能的編程語言。
羅伯特·格瑞史莫(Robert Griesemer),羅勃·派克(Rob Pike)及肯·湯普遜(Ken Thompson)于2007年9月開始設(shè)計(jì)Go,稍后Ian Lance Taylor、Russ Cox加入項(xiàng)目。
Go是基于Inferno操作系統(tǒng)所開發(fā)的。Go于2009年11月正式宣布推出,成為開放源代碼項(xiàng)目,并在Linux及Mac OS X平臺上進(jìn)行了實(shí)現(xiàn),后來追加了Windows系統(tǒng)下的實(shí)現(xiàn)。在2016年,Go被軟件評價公司TIOBE 選為“TIOBE 2016 年最佳語言”。?
目前,Go每半年發(fā)布一個二級版本(即從a.x升級到a.y)。
下面讓我們感受下第一個Go程序吧!
第一個Go程序
實(shí)例
package main import "fmt" func main() { fmt.Println("Hello, World!") }
運(yùn)行實(shí)例 ?
點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例
Go的語法接近C語言,但對于變量的聲明有所不同。Go支持垃圾回收功能。Go的并行模型是以東尼·霍爾的通信順序進(jìn)程(CSP)為基礎(chǔ),采取類似模型的其他語言包括Occam和Limbo,但它也具有Pi運(yùn)算的特征,比如通道傳輸。在1.8版本中開放插件(Plugin)的支持,這意味著現(xiàn)在能從Go中動態(tài)加載部分函數(shù)。
與C 相比,Go并不包括如枚舉、異常處理、繼承、泛型、斷言、虛函數(shù)等功能,但增加了 切片(Slice) 型、并發(fā)、管道、垃圾回收、接口(Interface)等特性的語言級支持。Go 2.0版本將支持泛型,對于斷言的存在,則持負(fù)面態(tài)度,同時也為自己不提供類型繼承來辯護(hù)。
不同于Java,Go內(nèi)嵌了關(guān)聯(lián)數(shù)組(也稱為哈希表(Hashes)或字典(Dictionaries)),就像字符串類型一樣。
提示:我們的Go教程將幫助您學(xué)習(xí)從初級到高級的Go知識。如果你有任何疑問,請前往PHP中文網(wǎng)Go社區(qū)提出你的問題,會有熱心網(wǎng)友為你解答。
Go撰寫風(fēng)格
在Go中有幾項(xiàng)規(guī)定,而且這些是強(qiáng)制的,當(dāng)不匹配以下規(guī)定時編譯將會產(chǎn)生錯誤。
每行程序結(jié)束后不需要撰寫分號(;)。
大括號({)不能夠換行放置。
if判斷式和for循環(huán)不需要以小括號包覆起來。
Go亦有內(nèi)置gofmt工具,能夠自動整理代碼多余的空白、變量名稱對齊、并將對齊空格轉(zhuǎn)換成Tab。
Go語言特色
簡潔、快速、安全
并行、有趣、開源
內(nèi)存管理、數(shù)組安全、編譯迅速
Go 語言用途
Go 語言被設(shè)計(jì)成一門應(yīng)用于搭載 Web 服務(wù)器,存儲集群或類似用途的巨型中央服務(wù)器的系統(tǒng)編程語言。
對于高性能分布式系統(tǒng)領(lǐng)域而言,Go 語言無疑比大多數(shù)其它語言有著更高的開發(fā)效率。它提供了海量并行的支持,這對于游戲服務(wù)端的開發(fā)而言是再好不過了。
本Go?教程手冊涵蓋的內(nèi)容
本Go?教程涵蓋所有Go?基礎(chǔ)和高級知識,包含了Go語言結(jié)構(gòu)、Go 基本語法、Go 數(shù)據(jù)類型、Go?函數(shù)、Go?運(yùn)算符、Go?數(shù)組、Go?錯誤處理、Go?數(shù)據(jù)轉(zhuǎn)換以及Go 語言開發(fā)工具等等知識介紹。
提示:本教程的每一章都包含了很多Go?實(shí)例,您可以直接點(diǎn)擊?"運(yùn)行實(shí)例"?按鈕在線查看結(jié)果。這些例子將幫助您更好地理解和使用Go?語言。
最新章節(jié)
- Go 語言開發(fā)工具 2016-10-18
- Go 錯誤處理 2016-10-18
- Go 語言接口 2016-10-18
- Go 語言類型轉(zhuǎn)換 2016-10-18
- Go 語言遞歸函數(shù) 2016-10-18
- Go 語言Map(集合) 2016-10-18
- Go 語言范圍(Range) 2016-10-18
- Go 語言切片(Slice) 2016-10-18
相關(guān)課程
- 最新ThinkPHP 5.1全球首發(fā)視頻教程(60天成就PHP大牛線上培訓(xùn)班課) 2022-02-17
- 簡單聊聊PHP創(chuàng)業(yè)那點(diǎn)事 2023-01-04
- 大型實(shí)戰(zhàn)天龍八部之開發(fā)Mini版MVC框架仿糗事百科網(wǎng)站 2018-01-25
- 登錄驗(yàn)證與經(jīng)典留言板 2018-03-02
- PHP實(shí)戰(zhàn)開發(fā)極速入門: PHP快速創(chuàng)建[小型商業(yè)論壇] 2022-06-28
- 快速入門Node.JS全套完整版 2022-09-30
- 自己動手寫 PHP MVC 框架(40節(jié)精講/巨細(xì)/新人進(jìn)階必看) 2022-12-08
- 馬士兵spring視頻教程 2022-04-12