Go 語言教程
Go 是一個開源的編程語言裳仆,它能讓構(gòu)造簡單宜肉、可靠且高效的軟件變得容易己单。
Go是從2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持開發(fā),后來還加入了Ian Lance Taylor, Russ Cox等人浪耘,并最終于2009年11月開源罢洲,在2012年早些時候發(fā)布了Go 1穩(wěn)定版本√吖剩現(xiàn)在Go的開發(fā)已經(jīng)是完全開放的,并且擁有一個活躍的社區(qū)惹苗。
Go 語言特色
簡潔殿较、快速、安全
并行鸽粉、有趣斜脂、開源
內(nèi)存管理、v數(shù)組安全触机、編譯迅速
計算機軟件經(jīng)歷了數(shù)十年的發(fā)展帚戳,形成了多種學術(shù)流派,有面向過程編程儡首、面向?qū)ο缶幊唐巍⒑瘮?shù)式編程、面向消息編程等蔬胯,這些思想究竟孰優(yōu)孰劣对供,眾說紛紜。
除了OOP外氛濒,近年出現(xiàn)了一些小眾的編程哲學产场,Go語言對這些思想亦有所吸收。例如舞竿,Go語言接受了函數(shù)式編程的一些想法京景,支持匿名函數(shù)與閉包。再如骗奖,Go語言接受了以Erlang語言為代表的面向消息編程思想确徙,支持goroutine和通道,并推薦使用消息而不是共享內(nèi)存來進行并發(fā)編程执桌”苫剩總體來說,Go語言是一個非逞稣酰現(xiàn)代化的語言伴逸,精小但非常強大。
Go 語言最主要的特性:
- 自動垃圾回收
- 更豐富的內(nèi)置類型
- 函數(shù)多返回值
- 錯誤處理
- 匿名函數(shù)和閉包
- 類型和接口
- 并發(fā)編程
- 反射
- 語言交互性
Go 語言用途
Go 語言被設(shè)計成一門應用于搭載 Web 服務(wù)器膘壶,存儲集群或類似用途的巨型中央服務(wù)器的系統(tǒng)編程語言错蝴。
對于高性能分布式系統(tǒng)領(lǐng)域而言博烂,Go 語言無疑比大多數(shù)其它語言有著更高的開發(fā)效率。它提供了海量并行的支持漱竖,這對于游戲服務(wù)端的開發(fā)而言是再好不過了。
Go語言環(huán)境安裝
可以參考菜鳥教程的Go 語言環(huán)境安裝
Go 語言支持以下系統(tǒng):
- Linux
- Mac OS X
- Windows
安裝包下載地址為:https://golang.org/dl/畜伐。
如果打不開可以使用這個地址:https://golang.google.cn/dl/馍惹。
各個系統(tǒng)對應的包名:
操作系統(tǒng) | 包名 |
---|---|
Windows | go1.14.3.windows-amd64.msi |
Linux | go1.14.3.linux-amd64.tar.gz |
Mac | go1.14.3.darwin-amd64.pkg |
Source | go1.14.3.src.tar.gz |
UNIX/Linux/Mac OS X 安裝 go
以下介紹了在UNIX/Linux/Mac OS X系統(tǒng)下使用源碼安裝方法:
1、下載二進制包:go1.14.3.linux-amd64.tar.gz玛界。
2万矾、將下載的二進制包解壓至 /usr/local目錄。
tar -C /usr/local -xzf go1.14.3.linux-amd64.tar.gz
3慎框、將 /usr/local/go/bin 目錄添加至PATH環(huán)境變量:
export PATH=$PATH:/usr/local/go/bin
Windows 系統(tǒng)下安裝 go
Windows 下可以使用 .msi 后綴(在下載列表中可以找到該文件良狈,如go1.14.3.windows-amd64.msi)的安裝包來安裝。
默認情況下 .msi 文件會安裝在 c:\Go 目錄下笨枯。你可以將 c:\Go\bin 目錄添加到 Path 環(huán)境變量中薪丁。添加后你需要重啟命令窗口才能生效。
第一個 Go 程序
接下來我們來編寫第一個 Go 程序 hello.go(Go 語言源文件的擴展是 .go)馅精,代碼如下:
實例
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
執(zhí)行以上代碼輸出
$ go run hello.go
Hello, World!
go語言相關(guān)學習資料
- Go 語言官方教程中文版
- https://github.com/Go-zh/tour
- Go語言之旅
-
awesome-go
A curated list of awesome Go frameworks, libraries and software https://awesome-go.com/ - Go編程語言
- Go 語言教程-菜鳥教程
-
learn-go-with-tests
Learn Go with test-driven development - Ultimate Go study guide
- go語言中文網(wǎng)
- Go參考手冊
- Go by Example 中文版
- Go by Example 英文原版
- Go 101
- Effective Go
- GO語言學習資源整理
- GO語言學習資料(視頻+源碼+電子書)免費領(lǐng)取
- Go語言學習資料大全
go語言的相關(guān)視頻
GO語言學習資源整理
首推 Go by Example作為你的入門教程严嗜。然后,Go 101也是一個很不錯的在線電子書洲敢。如果你想看紙書的話漫玄,The Go Programming Language 一書在豆瓣上有 9.2 分,但是國內(nèi)沒有賣的压彭。
另外睦优,Go 語言官方的 Effective Go 是必讀的,這篇文章告訴你如何更好地使用 Go 語言壮不,以及 Go 語言中的一些原理汗盘。
Go 語言最突出之處是并發(fā)編程,Unix 老牌黑客羅勃·派克(Rob Pike)在 Google I/O 上的兩個分享忆畅,可以讓你學習到一些并發(fā)編程的模式衡未。
Go Concurrency Patterns( 幻燈片和演講視頻)。
Advanced Go Concurrency Patterns(幻燈片家凯、演講視頻)缓醋。
然后,Go 在 GitHub 的 wiki 上有好多不錯的學習資源绊诲,你可以從中學習到多送粱。比如:
- Go 精華文章列表。
- Go 相關(guān)博客列表掂之。
-
Go Talks抗俄。
還有個內(nèi)容豐富的 Go 資源列表 Awesome Go脆丁,推薦看看。