命令源碼文件
命令源碼文件是程序的運(yùn)行入口悠砚,是每個(gè)可獨(dú)立運(yùn)行的程序必須擁有的晓勇。我們可以通過構(gòu)建或安裝生成與其對(duì)應(yīng)的可執(zhí)行文件,后者一般會(huì)與該命令源碼文件的直接父目錄同名。如果一個(gè)源碼文件聲明屬于main包绑咱,并且包含一個(gè)無(wú)參數(shù)聲明且無(wú)結(jié)果聲明的main函數(shù)绰筛,那么就是命令源碼文件。在main包中只允許一個(gè)main函數(shù)描融,否則編譯報(bào)錯(cuò)
庫(kù)源碼文件
庫(kù)源碼文件不能被直接運(yùn)行铝噩,它僅用于存放程序?qū)嶓w。只要遵從 Go 語(yǔ)言規(guī)范窿克,這些程序?qū)嶓w就可以被其他代碼使用骏庸。這些“其他代碼”可以與被使用的程序?qū)嶓w在同一個(gè)源碼文件內(nèi),也可以在其他源碼文件年叮,甚至其他代碼包中具被。
測(cè)試源碼文件
文件名:測(cè)試源碼文件的主名稱應(yīng)該以被測(cè)源碼文件的主名稱為前導(dǎo),并且必須以“_test”為后綴只损。例如一姿,如果被測(cè)源碼文件的名稱為 demo.go,那么針對(duì)它的測(cè)試源碼文件的名稱就應(yīng)該demo_test.go跃惫。
測(cè)試函數(shù)的名稱和簽名的限制
功能測(cè)試函數(shù):其名稱必須以Test為前綴叮叹,并且參數(shù)列表中只應(yīng)有一個(gè)*testing.T類型的參數(shù)聲明。
????func TestDemo(t *testing.T) {
? ? ? ? ? ? // 編寫需要測(cè)試的代碼
????}? ?
性能測(cè)試函數(shù):其名稱必須以Benchmark為前綴爆存,并且唯一參數(shù)的類型必須是*testing.B類型的衬横。
??????func BenchmarkDemo(t *testing.B) {
????????// 編寫需要測(cè)試的代碼
????}? ?
示例測(cè)試函數(shù):其名稱必須以Example為前綴,但對(duì)函數(shù)的參數(shù)列表沒有強(qiáng)制規(guī)定终蒂。
func?ExampleDemo(){
//程序的使用方式
}
代碼包聲明的基本規(guī)則
第一條規(guī)則:同目錄下的源碼文件的代碼包聲明語(yǔ)句要一致蜂林。也就是說,它們要同屬于一個(gè)代碼包拇泣。這對(duì)于所有源碼文件都是適用的噪叙。如果目錄中有命令源碼文件,那么其他種類的源碼文件也應(yīng)該聲明屬于main包霉翔。這也是我們能夠成功構(gòu)建和運(yùn)行它們的前提睁蕾。
第二條規(guī)則:源碼文件聲明的代碼包的名稱可以與其所在的目錄的名稱不同。在針對(duì)代碼包進(jìn)行構(gòu)建時(shí)债朵,生成的結(jié)果文件的主名稱與其父目錄的名稱一致子眶。