Go Web 程式設計入門教學:基礎介紹與環境建置

Posted by HappyCoder 自學程式好好玩 on 2017-07-01

Go Web 程式設計入門教學

前言

Go 程式語言 是 Google 推出的靜態程式語言,其特色在於核心語法和關鍵字非常精簡(全部只有 25 個關鍵字!)並擷取了靜態語言的效能和動態語言的開發效率的優點,具備垃圾回收、快速編譯等特性,且針對平行化程式設計在使用上非常方便。接下來的文章我們將透過 Golang Web 程式設計來學習 Go 這個程式語言。程式語言唯有動手作才能學的好,你可以參考本篇文章建置開發環境或是使用線上開發環境進行學習。

Go 環境建置

安裝方式:

  1. 官網套裝安裝,線上也有官方提供的 playground 線上執行環境可以使用
  2. 使用套件管理工具 homebrew(mac)、apt-get(linux) 等進行安裝

    例如,在 linux 上安裝:

    1
    $ sudo apt-get install golang-go

    或是主動宣告版本

    1
    $ sudo apt-get install golang-1.8-go

    在 mac 上安裝:

    1
    $ brew install go
  3. 使用 gcc、MinGW(windows)等編譯器編譯原始 Go 檔案

對於一般初學者來說,可以使用官網或是套件管理工具來安裝,可以留意環境變數是否有設定成功。

若有成功安裝,可以打開終端機執行 go version 會出現相關版本訊息,以下是 mac 的範例:

1
2
$ go version
go version go1.9 darwin/amd64

在 Go 中也提供了許多方便指令,方便我們編譯、測試和執行程式:

Go Web 程式設計入門教學

編譯檔案

1
$ go build

執行單元測試(unit testing),Go 一開始就內建了測試的機制,執行 go test 的話,會自動讀取套件目錄中的 *_test.go 來進行編譯、測試

1
$ go test

讓程式可以格式化 formatting,符合 go 的 convention

1
$ go fmt

安裝套件

1
$ go get

靜態分析潛在 bug

1
$ go vet

可以快速 build 並執行程式

1
$ go run

展示 go 相關文件

1
$ godoc

重新命名變數和函式

1
$ gorename

產生程式碼

1
$ go generate

你的第一個 Go 程式

在 Go 中程式運行的入口是套件 main。在這個程式中使用並導入了套件 “fmt”,在 Go 程式中程式執行入口是 main function,若成功在終端機執行 $ go run,則會在終端機印出 Hello, World! 的 Go 程式,恭喜完成你的第一個 Go 程式了!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 宣告程式屬於哪個 package
package main
// 引入套件
import (
"fmt"
)
// 程式執行入口
func main() {
// 使用 fmt 套件印出字串 word,使用 := 簡化原本變數宣告 var word string = "Hello, World!"
word := "Hello, World!"
fmt.Println(word)
}

另外一個範例是引入了 math/rand 套件產生隨機整數(由於環境中 seed 一樣所以會印出同樣值)

1
2
3
4
5
6
7
8
9
10
package main
import (
"fmt"
"math/rand"
)
func main() {
fmt.Println("My favorite number is", rand.Intn(10))
}

Go 有支援許多網路程式開發的套件,可以用很簡單的幾行就完成網路伺服器的建置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package main
import (
"io"
"net/http"
)
// 處理 request 和 response 的函式
func hello(w http.ResponseWriter, r *http.Request) {
// 印出 hello world
io.WriteString(w, "Hello world!")
}
func main() {
// router 讓網址可以對應處理函式
http.HandleFunc("/", hello)
// 監聽 8000 port
http.ListenAndServe(":8000", nil)
}

總結

以上就是關於 Go 程式語言的基本教學介紹和環境建置,接下來的文章我們將透過 Golang Web 程式設計來學習 Go 這個程式語言的方方面面。

參考文件

  1. A tour of go
  2. Go Tutorial
  3. Go by Example
  4. Go Programming Language: An Introductory Tutorial
  5. Go tour Exercise
  6. Ubuntu Go install
  7. 從Go看現代程式語言

(image via cuelogic



喜歡我們的文章嗎?歡迎分享按讚給予我們支持和鼓勵!


在 Facebook 上追蹤我們,立即掌握最新和最豐富的程式設計自學資訊!

Comments: