在 Go 中,package 的名稱通常會以小寫命名,且不包含底線或小寫駝峰(小寫駝峰指的是開頭小寫,然後不同的單字的字首用大寫來區隔,小寫駝峰例子如firstName,而大寫駝峰則為FirstName),並且通常會是名詞,如果是由多個名詞組成,中間區隔可用連字號 "-" 來區隔,如 first-name
此外,package 的名稱與資料夾的層級也是有特定的規則:
這邊註記一下,變數與函數名稱的大小寫,相當於 c++ 中的 public 與 private,如果該名稱是小寫開頭,就只有該檔案可引用,字首為大寫則是其他檔案也可使用,下面用一個簡單的例子作為範例,可以參考該結構
在 people 的資料夾裡面我們放了一個 people-list.go 的檔案,其內容如下:
package people // 建議與資料夾同名
var People = [...]string{"Peter", "Ted", "Judy"}
在 say 的資料夾裡面我們放了一個 say-hi.go 與 say-words.go 的檔案,其內容如下:
package say // say-hi.go file
import "fmt"
func SayHi() {
fmt.Println("say hi")
}
package say // say-words.go file
import "fmt"
func SayWords(person, word string) {
fmt.Printf("%s say %s \n", person, word)
}
main.go 則放在最外層
package main
import (
"it/day18/people"
"it/day18/say"
)
func main() {
say.SayHi()
people := people.People
for i := range people {
say.SayWords(people[i], "hello")
}
}
輸出結果為:
say hi
Peter say hello
Ted say hello
Judy say hello
https://github.com/luckyuho/ithome30-golang/tree/main/day18