1)在給一個(gè)文件打包時(shí),該包對(duì)應(yīng)一個(gè)文件夾,比如這里的utils文件夾對(duì)應(yīng)的包名就是utils,文件的包名通常和文件所在的文件夾名一致,一般為小寫字母。
2)當(dāng)一個(gè)文件要使用其它包函數(shù)或變量時(shí),需要先引入對(duì)應(yīng)的包
- 引入方式1:import "包名"
- 引入方式2:
import(
"包名"
"包名"
)
3)package指令在文件第一行,然后是import指令。
4)在import包時(shí),路徑從SGOPATH的src下開始,不用帶src,編譯器會(huì)自動(dòng)從src下開始引入
5) 為了讓其它包的文件,可以訪問到本包的函數(shù),則該函數(shù)名的首字母需要大寫,類似其它
語言的public,這樣才能跨包訪問。比如utils.go的
如果是變量可以被別的包訪問,那么也是定義為大寫。
6)在訪問其它包函數(shù)時(shí),其語法是包名.函數(shù)名,比如這里的main.go文件中(變量也是一樣)
?7)如果包名較長(zhǎng),Go支持給包取別名,注意細(xì)節(jié):取別名后,原來的包名就不能使用了(取別名u,那么要使用新的別名去訪問這個(gè)包的變量和函數(shù))
import (
u "day1/base/package_test/utils"
"fmt"
)
func main() {
n := u.Sum(1, 2)
fmt.Println(n)
fmt.Println(u.Number1)
}
8)在同一包下,不能有相同的函數(shù)名(也不能有相同的全局變量名),否則報(bào)重復(fù)定義。
9) 如果你要編譯成一個(gè)可執(zhí)行程序文件,就需要將這個(gè)包聲明為main,就是一個(gè)語法規(guī)范,如果你是寫一個(gè)庫,包名可以自定義。(其實(shí)也就是main包只能有一個(gè))
在實(shí)際開發(fā)過程當(dāng)中實(shí)際上是要生成二進(jìn)制文件,生成可執(zhí)行文件就可以交給對(duì)方去使用了。
?10)golang支持可變參數(shù)文章來源:http://www.zghlxwxcb.cn/news/detail-437839.html
func test99(s string, args ...int) {
for k, v := range args {
fmt.Println(k, v)
}
for i := 0; i < len(args); i++ {
fmt.Println(args[i])
}
}
func main() {
test99("s", 1, 2, 3, 4)
}
args本質(zhì)上是一個(gè)切片,可以通過args[index]訪問到各個(gè)值文章來源地址http://www.zghlxwxcb.cn/news/detail-437839.html
到了這里,關(guān)于Golang 包使用注意事項(xiàng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!