Go - 第四章 | Go 入門(下)
前言
接續下半部
註:原文連結
簡要
在這個教學, 你將會簡單了解的Go
. 在此過程中, 你將:
- 安裝
Go
(如果你還沒安裝). (於上一篇介紹完畢) - 寫一些簡單的 “Hello, world” 程式碼. (於上一篇介紹完畢)
- 使用
Go
指令執行你的程式碼. (於上一篇介紹完畢) - 使用
Go
包發現工具查找可以在你的程式碼中使用的包. - 呼叫外部模塊
functions
.
先決條件
- 完成上一篇教學內容.
呼叫外部包函數
當你想要使用Go
做一些事情的時候,說不定已經有人將其實作並包成一個包,你可以呼叫這個包中的function
在你的程式碼裡面。
- 利用外部模塊提供的方法,使你的輸出訊息更加有趣
- 訪問
pkg.go.dev
並且搜尋 “quote” 包。 - 在搜尋結果中找到並點擊
rsc.io/quote
包(請暫時先忽略rsc.io/quote/v3
)。 - 在文件(
Doc
)選項的索引下,請記住你可以使用的function
清單. 你將會用到名為Go
的函數。 - 在頁面的頂端,你可以看到
quote
包是在rsc.io/quote
模塊。
- 訪問
你可以使用pkg.go.dev
網站找尋已經發佈的模塊,你可以使用這些模塊中包含的function
在你的程式碼裡。例如rsc.io/quote
包已發布, 讓其他人可以使用它。隨著時間模塊會改善升級,你可以透過升級更新並使用改進後的版本。
- 在你的Go程式碼中(
hello.go
),導入rsc.io/quote
包並使用go function
。- 你的程式碼應該包括如下:
1
2
3
4
5
6
7
8
9package main
import "fmt"
import "rsc.io/quote"
func main() {
fmt.Println(quote.Go())
}
- 你的程式碼應該包括如下:
- 將你自己的代碼放在模塊中以跟踪依賴關係。
- 當你導入其他模塊的包,會在
go.mod
檔案列出提供這些包的特定模塊和版本。該文件包含在你的程式中,包括在你的源代碼存儲庫中。 - 要建立
go.mod
文件。請運行go mod init
指令,並為其指定程式碼所在模塊的名稱(這邊使用”hello”即可)。1
2$ go mod init hello
go: creating new go.mod: module hello
- 當你導入其他模塊的包,會在
- 執行你的程式碼去看呼叫的
function
所產生的訊息。- 輸出
1
2
3
4go run hello.go
go: finding module for package rsc.io/quote
go: found rsc.io/quote in rsc.io/quote v1.5.2
Don't communicate by sharing memory, share memory by communicating. - 請注意,你的程式碼呼叫了
Go function
,輸出了巧妙的通訊的訊息。
- 輸出
檔案範例
以下檔案內容為此篇文章中所產生的內容參考:
go.mod
1 | module hello |
go.sum
1 | golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c h1:qgOY6WgZOaTkIIMiVjBQcw93ERBE4m30iBm00nkL0i8= |
單字/句子
以下單字,有的其實都看得懂,純粹就是想要加強紀錄、練習發音、翻譯意思。
單字/句子 | 翻譯 |
---|---|
implemented | 已實施 |
interesting | 有趣 |
Visit | 訪問 |
quote | 引用 |
Locate | 定位 |
published | 已發表 |
improved | 改善的 |
upgrade | 升級 |
highlighted | 突出顯示 |
tracking | 追踪 |
dependencies | 依存關係 |
specific | 具體 |
providing | 提供 |
those | 那些 |
stays | 停留 |
giving | 給予 |
generated | 產生的 |
Notice | 注意 |
clever | 聰明 |
communication | 通訊 |
designed | 設計的 |
required | 需要 |
結語
這邊的重點我著重放在go.mod
,主要是理解model和package的關係。自己動手做了之後,可以初步了解其關係和層級;另外還有在建置一個新的專案的時候,透過go mod init
來產生go.mod
檔。
註:以上參考了
Golang Documentation