GO基本規則

2021-10-19 09:43:51 字數 1735 閱讀 1946

工作區是放置go原始碼檔案的目錄

一般情況下,go原始碼檔案都需要存放在工作區中,但對於命令原始碼檔案,這不是必須的

用於存放原始碼檔案

以**包為組織形式

用於存放歸檔檔案(名稱以.a為字尾的檔案)

用於存放當前工作區中的go程式的可執行檔案

當環境變數gobin已有效設定時,該目錄會變的無意義

當gopath的值中包含多個工作區的路徑時,必須設定gobin,否則無法成功安裝go程式的可執行檔案

分三類1.命令原始碼檔案:

宣告自己屬於main**包,包含無引數宣告和結果宣告的main函式

被安裝後,相應的可執行檔案會被存放到gobin執行的目錄或當前工作區目錄/bin下

命令原始碼檔案是go程式的入口,但不建議把程式寫在乙個檔案中,注意:同乙個**包中強烈不建議直接包含多個命令原始碼檔案

2.庫原始碼檔案

不具備命令原始碼檔案那兩個特徵的原始碼檔案

被安裝後,相應的歸檔檔案會被存放在當前工作目錄/pkg/平台相關目錄下

3.測試原始碼檔案

不具備命令原始碼檔案那兩個特徵的原始碼檔案

名稱以_test.go為字尾

至少有乙個函式的名稱以test或者benchmark為字首

並且該函式接收乙個型別為testing.t或者testing.b的引數

func testfind(t *testing.t)

func benchmarkfind(b *testing.b)

1.作用:

編譯和歸檔go程式的最基本單位

**劃分、集結和依賴的有效組織形式,也是許可權控制的輔助手段

2.**包的規則

乙個**包實際上就是乙個由匯入路徑代表的目錄

匯入路徑即 工作區目錄/src 或 工作區目錄/pkg/平台相關目錄 之下的某段子路徑

3.**包的宣告

每個原始碼檔案必須宣告其所屬的**包

同乙個**包中的所有原始碼檔案宣告的**包必須是相同的

4.**包宣告與**包匯入路徑的區別

**包宣告語句中的包名稱應該是該**包的匯入路徑的最右子路徑,如hypermind.cn/pkgtool => package pkgtool

5.**包匯入

**包匯入語句中使用的包名稱應該與其匯入路徑一致,例如:

flag fmt strings ====> import(「flag」 「fmt」 「strings」)

6.**包的匯入方法

帶別名的匯入

import str 「strings」 ====> str.hasprefix(「abc」,「a」)

本地化匯入

import . 「strings」 ====> hasprefix(「abc」,「a」)

僅僅初始化

import _ 「strings」 ====> 僅僅匯入初始化方法

**包初始化函式即:無引數宣告和結果宣告的init函式

init函式可以被宣告在任何檔案中,且可以有多個

init函式的執行時機----單一**包內

對所有全域性變數進行求值===》執行所有init函式

init函式的執行時機----不同**包之間匯入順序和執行順序相反

匯入順序 a—>b----->c

執行順序 c---->b----->a

注意:我們不應該對同乙個**包中匯入的多個**包中的init函式的執行順序做出假設!

無論乙個**包中有多少個init函式,每個init函式只會被執行一次

go 測試的基本規則和流程

測試原始碼檔案的主名稱應該以被測試原始碼檔案的主名稱為前導,並且以 test 為字尾。go 語言對測試函式的名稱和簽名的規定 只有測試原始碼檔案的名稱對了,測試函式的名稱和簽名也對了,執行 go test 目錄 命令時,測試 才會被執行。demo.go package main import fmt...

XML基本規則

1.xml 文件必須包含在乙個單一元素中 2.xml 元素不能重疊,必須正確的巢狀 3.不能省去任何結束標記,或者說標記必須成對 4.xml 元素是區分大小寫的,也就是大小寫敏感 5.xml 文件中的屬性有兩個規則 屬性必須有值 那些值必須用引號括起,可以使用單引號,也可以使用雙引號,但要始終保持一...

推斷基本規則

資料集 只有乙個屬性承擔了所有工作,其它的都是無關或者冗餘的屬性。它適應於類目屬性 預設值和數值屬性。方法 1規則 1 rule,1r 是乙個能從例項集裡方便的找到非常簡單的分類規則方法。特點 它產生一層的決策樹,用乙個規則集的形式表示,只在某個特定的屬性上進行測試。想法 建立乙個只對單個屬性進行測...