Go是一種新的語言,一種並發的、帶垃圾回收的、快速編譯的語言。它可以在一台電腦上用幾秒鐘的時間編譯一個大型的Go程式。 Go為軟體構造提供了一個模型,它使依賴分析更加容易,並且避免了大部分C風格include文件與庫的開頭。 Go是靜態型別的語言,它的型別系統沒有層級。因此使用者不需要在定義類型之間的關係上花費時間,這樣感覺起來比典型的物件導向語言更輕量級。 Go完全是垃圾回收型的語言,並為並發執行與通訊提供了基本的支援。依照其設計,Go打算為多核心機器上系統軟體的構造提供一個方法。
Go(又稱Golang)是Google開發的靜態強型別、編譯型、並髮型,並具有垃圾回收功能的程式語言。
羅伯特‧格瑞史莫(Robert Griesemer),羅伯‧派克(Rob Pike)及肯‧湯普遜(Ken Thompson)於2007年9月開始設計Go,稍後Ian Lance Taylor、 Russ Cox加入計畫。
Go是基於Inferno作業系統所開發的。 Go於2009年11月正式宣布推出,成為開放原始碼項目,並在Linux及Mac OS X平台上進行了實現,後來追加了Windows系統下的實現。在2016年,Go被軟體評估公司TIOBE 選為「TIOBE 2016 年最佳語言」。
目前,Go每半年發布一個二級版本(即從a.x升級到a.y)。
下面讓我們感受下第一個Go程式吧!
第一個Go程式
#Go的語法接近C語言,但對於變數的宣告有所不同。 Go支援垃圾回收功能。 Go的平行模型是以東尼·霍爾的通訊順序進程(CSP)為基礎,採取類似模型的其他語言包括Occam和Limbo,但它也具有Pi運算的特徵,例如通道傳輸。在1.8版本中開放插件(Plugin)的支持,這意味著現在能從Go中動態載入部分函數。
與C 相比,Go不包括如枚舉、異常處理、繼承、泛型、斷言、虛函數等功能,但增加了切片(Slice) 型、並發、管道、垃圾回收、介面(Interface)等特性的語言級支援。 Go 2.0版本將支援泛型,對於斷言的存在,則持負面態度,同時也為自己不提供類型繼承來辯護。
不同於Java,Go內嵌了關聯陣列(也稱為雜湊表(Hashes)或字典(Dictionaries)),就像字串類型一樣。
提示:我們的Go教學將幫助您學習從初級到高級的Go知識。如果你有任何疑問,請前往PHP中文網Go社群提出你的問題,會有熱心網友為你解答。
Go撰寫風格
在Go中有幾項規定,而且這些是強制的,當不符合以下規定時編譯將會產生錯誤。
每行程式結束後不需要寫分號(;)。
大括號({)不能夠換行放置。
if判斷式和for迴圈不需要以小括號包覆起來。
Go也有內建gofmt工具,能夠自動整理程式碼多餘的空白、變數名稱對齊、並將對齊空格轉換成Tab。
Go語言特色
簡潔、快速、安全性
並行、有趣、開源
記憶體管理、陣列安全、編譯迅速
Go 語言用途
Go 語言被設計成一門應用於搭載Web 伺服器,儲存叢集或類似用途的巨型中央伺服器的系統程式語言。
對於高效能分散式系統領域而言,Go 語言無疑比大多數其它語言有著更高的開發效率。它提供了海量並行的支持,這對於遊戲服務端的開發而言是再好不過了。
本Go 教學手冊涵蓋的內容
本Go 教學涵蓋所有Go 基礎和進階知識,包含了Go語言結構、Go 基本語法、Go 資料型別、Go 函數、Go 運算符、Go 數組、Go 錯誤處理、Go 資料轉換以及Go 語言開發工具等等知識介紹。
提示:本教學的每一章都包含了許多Go 實例,您可以直接點擊 "執行實例" 按鈕線上查看結果。這些例子將幫助您更好地理解和使用Go 語言。
最新章節
- Go 语言开发工具 2016-10-18
- Go 错误处理 2016-10-18
- Go 语言接口 2016-10-18
- Go 语言类型转换 2016-10-18
- Go 语言递归函数 2016-10-18
- Go 语言Map(集合) 2016-10-18
- Go 语言范围(Range) 2016-10-18
- Go 语言切片(Slice) 2016-10-18
相關課程
- 最新ThinkPHP 5.1全球首發影片教學(60天成就PHP大牛線上訓練課程) 2022-02-17
- 簡單聊聊PHP創業那點事 2023-01-04
- 大型實戰天龍八部之開發Mini版MVC架構仿糗事百科網站 2018-01-25
- 登入驗證與經典留言板 2018-03-02
- PHP實戰開發極速入門: PHP快速創建[小型商業論壇] 2022-06-28
- 快速入門Node.JS全套完整版 2022-09-30
- 自己動手寫 PHP MVC 框架(40節精講/鉅細/新人進階必看) 2022-12-08
- 馬士兵spring影片教學 2022-04-12