包的使用詳解
- 包的引出
- 包的原理圖
- 包的基本概念
- 包的三大作用
- 包的相關說明
- 包使用的快速入門
- 包使用的注意事項
包的引出
- 在實際開發中,我們往往需要在不同檔案中,去呼叫其它檔案的定義函式,比如main.go中,去使用utils.go檔案中的函式,如何實作?->包,
- 現在有兩個程式員共同開發一個Go專案,程式員A希望定義函式Cal,程式員B也想定義函式也叫Cal,兩個程式員為此還吵了起來,怎么辦?->包,
包的原理圖
包的本質實際上就是創建不同的檔案夾,來存放程式檔案,
包的基本概念
go的每一個檔案都是屬于一個包的,也就是說go是以包的形式來管理檔案和專案目錄結構的,
包的三大作用
- 區分相同名字的函式、變數等識別符號,
- 當程式檔案很多時,可以很好的管理專案,
- 控制函式、變數等訪問范圍,即作用域,
包的相關說明
打包基本語法
package 包名
引入包的基本語法
import “包的路徑”
包使用的快速入門
包快速入門:相互呼叫函式,將func Cal定義到檔案utils.go中,將utils.go放到一個包中,當其它檔案需要使用utils.go的方法是,可以import該包,就可以使用了,
代碼演示:

utils.go檔案
package utils
import(
"fmt"
)
func Cal(n1 int,n2 int, operator byte) int{
var res int
switch operator {
case '+':
res = n1 + n2
case '-':
res = n1 - n2
case '*':
res = n1 * n2
case '/':
res = n1 / n2
default:
fmt.Println("運算子號錯誤!")
}
return res
}
main.go檔案
package main
import(
"fmt"
//匯入包,從src下開始引入
"go_code/day4/utils"
)
func main() {
var n1 int = 10
var n2 int = 20
var operator byte = '+'
//呼叫Cal函式
res := utils.Cal(n1,n2,operator)
fmt.Println("result =",res)
}
運行結果:

包使用的注意事項
- 在給一個檔案打包時,該包對應一個檔案夾,比如這里的utils檔案夾對應的包名就是utils,檔案的包名通常和檔案所在的檔案夾名一致,一般為小寫字母,
- 當一個檔案要使用其它包函式或變數時,需要先引入對應的包,
引入方式1:import "包名”
引入方式2:import(
“包名1”
"包名2”
)
package 指令在檔案第一行,然后是import指令,
在import包時,路徑從$GOPATH的src下開始,不用帶src,編譯器會自動從src下開始引入, - 為了讓其它包的檔案,可以訪問到本包的函式,則該函式名的首字母需要大寫,類似其它語言的public,這樣才能跨包訪問,
- 在訪問其它包函式,變數時,其語法是 包名.函式名,
- 如果包名較長,Go支持給包取別名,注意細節:取別名后,原來的包名就不能使用了,
package main
import(
"fmt"
//取別名為util,原來的包名utils不能使用,否則報錯,只能使用util
util "go_code/day4/utils"
)
func main() {
var n1 int = 10
var n2 int = 20
var operator byte = '+'
//呼叫Cal函式
res := util.Cal(n1,n2,operator)
fmt.Println("result =",res)
}
- 在同一包下,不能有相同的函式名,也不能有相同的全域變數名,否則報重復定義的錯誤,
- 如果要編譯成一個可執行程式檔案,就需要將這個包宣告為main,即package main,這個就是一個語法規范,如果是寫一個庫,包名可以自定義,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/262605.html
標籤:區塊鏈
