細節(jié)說明
1、在給一個文件打包時谭羔,該包對應一個文件夾华糖,比如這里的
utils
文件夾對應的包名就是utils
, 文件的包名通常和文件所在的文件夾名一致
,一般為小寫字母
瘟裸。2客叉、 當一個文件要使用其它包函數(shù)或變量時,需要先引入對應的包
// 引入方式 1:
import "包名"
//引入方式 2:
import (
"包名"
"包名"
)
package
指令在 文件第一行话告,然后是import
指令兼搏。
在
import
包時,路徑從$GOPATH
的src
下開始沙郭,不用帶src
, 編譯器會自動從src
下開始引入
- 3佛呻、為了讓其它包的文件,可以訪問到本包的函數(shù)病线,則該函數(shù)名的首字母需要大寫吓著,類似其它語言 的
public
,這樣才能跨包訪問。比如utils.go
的 - 4送挑、在訪問其它包函數(shù)绑莺,變量時,其語法是
包名.函數(shù)名
惕耕, 比如這里的main.go
文件中 - 5纺裁、如果包名較長,
Go 支持給包取別名
赡突, 注意細節(jié):取別名后对扶,原來的包名就不能使用了
import (
"fmt"
util "demofunc01/utils"
)
- 6区赵、 在
同一包下
,不能有相同的函數(shù)名
(也不能有相同的全局變量名
)浪南,否則報重復定義 - 7笼才、 如果你要編譯成一個可執(zhí)行程序文件,就需要將這個包聲明為
main
, 即package main
.這個就是一個語法規(guī)范络凿,如果你是寫一個庫 骡送,包名可以自定義
編譯一個可執(zhí)行文件案例
1、演示一個案例絮记,項目的目錄如上圖摔踱。
2、編譯的指令怨愤,在項目目錄下派敷,編譯路徑不需要帶src,編譯器會自動帶。
matsu workspace_go
$ go build demofunc01/main
3撰洗、編譯時需要編譯main包所在的文件夾篮愉。
4、項目的目錄結(jié)構(gòu)最好按照規(guī)范來組織差导。
5试躏、編譯后生成一個有默認名的可執(zhí)行文件,在$GOPATH目錄下设褐,可以指定名字和目錄颠蕴,
比如:放在bin目錄下:
//main.go路徑 /Users/matsu/Documents/workspace/workspace_go/src/demofunc01/main
matsu workspace_go
$ go build -o bin/my.exe demofunc01/main