-
速度超過c++和java,比c慢查看全部
-
優(yōu)勢:原生支持并發(fā),靜態(tài)類型和編譯型所以運(yùn)行速度有保障,腳本語言所以更容易上手開發(fā)效率高查看全部
-
Go語言的整數(shù)類型一共有10個(gè)。
??
? ? 其中計(jì)算架構(gòu)相關(guān)的整數(shù)類型有兩個(gè),即:有符號的整數(shù)類型int
和無符號的整數(shù)類型uint
。在不同計(jì)算架構(gòu)的計(jì)算機(jī)之上,它們體現(xiàn)的寬度不同,寬度即指存儲一個(gè)某類型的值所需要的空間,空間的單位可以所比特也可以是字節(jié)
查看全部 -
變量與常量
聲明變量關(guān)鍵字var和常量關(guān)鍵字const
絕大多數(shù)的數(shù)據(jù)類型都可以被賦值給一個(gè)變量包括函數(shù),但是常量只能被賦予基本數(shù)據(jù)類型值本身
變量在聲明時(shí)可以直接為它賦值,也可以只聲明不賦值。
var num1 int =1? 或者只聲明 var num2 int
平行賦值 var num3 num4 int int = 2,3
多行賦值? var (
????num4 int = 4
????num5 int = 5
)
常量不能出現(xiàn)只聲明不賦值的情況
查看全部 -
Go語言源碼文件都由若干個(gè)程序?qū)嶓w組成的。在Go語言中,變量、常量、函數(shù)、結(jié)構(gòu)體和接口被統(tǒng)稱為“程序?qū)嶓w”,而它們的名字被統(tǒng)稱為“標(biāo)識符”。
? ? 標(biāo)識符可以是任何Unicode編碼可以表示的字母字符、數(shù)字以及下劃線“_”。不過,首字母不能是數(shù)字或下劃線。
查看全部 -
代碼包初始化函數(shù):無參數(shù)聲明和結(jié)果聲明的init函數(shù)
init函數(shù)可以被聲明在任何文件中,且可以有多個(gè)
init函數(shù)的執(zhí)行時(shí)機(jī)——單一代碼包內(nèi)
1對所有全局變量進(jìn)行求值? 2執(zhí)行所有init函數(shù)
如果在不同對代碼包內(nèi)
1執(zhí)行被導(dǎo)入對代碼包中對init函數(shù)? 2執(zhí)行導(dǎo)入它對那個(gè)代碼包對init函數(shù)
導(dǎo)入順序? A——B——C 執(zhí)行順序 C——B——A
init函數(shù)肯定在main函數(shù)之前先執(zhí)行,每一個(gè)init函數(shù)都只會執(zhí)行一次
查看全部 -
代碼包的作用
編譯和歸檔Go程序的最基本單位,代碼劃分、集結(jié)和依賴的有效組織形式,也是權(quán)限控制的輔助手段
代碼包的規(guī)則一個(gè)代碼包實(shí)際上就是一個(gè)由導(dǎo)入路徑代表的目錄
導(dǎo)入路徑即<工作區(qū)目錄>/src或<工作目錄>/pkg/<平臺相關(guān)目錄>之下的某段子路徑
代碼包聲明
每個(gè)源碼文件必須聲明其所屬的代碼包,同一個(gè)代碼包中的所有源碼文件聲明的代碼包應(yīng)該是相同的
代碼包聲明與代碼包導(dǎo)入路徑的區(qū)別:
代碼包聲明語句中的包名應(yīng)該是該代碼包導(dǎo)入路徑的最右子路徑,代碼包導(dǎo)入語句中使用的包名稱應(yīng)該與其導(dǎo)入路徑一致
帶別名的導(dǎo)入方式 import str “string”
本地化導(dǎo)入 import? . "strings"
僅初始化? import? ?_ "strings" (僅執(zhí)行代碼包中的初始化函數(shù))
查看全部 -
源碼文件的分類和含義:
名稱以.go為后綴,內(nèi)容以Go語言代碼組織的文件
多個(gè)Go源碼文件是需要用代碼包組織起來的
分類:命令源碼文件、庫源碼文件,(go語言程序)測試源碼文件(輔助源碼文件)
命令源碼文件
聲明自己屬于main代碼包、包含無參數(shù)聲明和結(jié)果聲明的main函數(shù)
被安裝后,相應(yīng)的可執(zhí)行文件會被存放到Gobin指向的目錄或<當(dāng)前工作區(qū)目錄>/bin下
命令源碼文件是GO程序的入口,但是不建議把程序都寫在一個(gè)文件中
同一個(gè)代碼包中強(qiáng)烈不建議直接包含多個(gè)命令源碼文件
庫源碼文件
不具備命令源碼文件的兩個(gè)特征的源碼文件
被安裝后,相應(yīng)的歸檔文件會被存放到<當(dāng)前工作區(qū)目錄>/pkg/<平臺相關(guān)目錄>下
測試源碼文件 名稱以_test.go為后綴
測試源碼文件中至少有一個(gè)函數(shù)的名稱以Test或Benchmark為前綴,并且該函數(shù)接受一個(gè)類型為*testing.T(功能測試函數(shù))或者*.testing.B的參數(shù)(性能測試函數(shù))
查看全部 -
工作區(qū)時(shí)放置GO源碼文件的目錄,一般情況下,Go源碼文件都需要方到工作區(qū)中,但是對于命令源碼文件來說,這不是必須的
src目錄:用于存放源碼文件,以代碼包為組織形式
pkg目錄:用于存放歸檔文件(名稱以.a為后綴的文件)
所有歸檔文件都會被存放到該目錄下到平臺相關(guān)目錄中,同樣以代碼包為組織形式
平臺相關(guān)目錄:
兩個(gè)隱含到Go語言環(huán)境變量:GOOS和GOARCH
GOOS:安裝到操作系統(tǒng)
GOARCH:計(jì)算架構(gòu)
bin目錄:用于存放當(dāng)前工作區(qū)中到Go程序到可執(zhí)行文件
兩種情況bin目錄沒有意義
1當(dāng)環(huán)境變量GOBIN已有效設(shè)置時(shí),該目錄會變當(dāng)無意義
2當(dāng)GOPATH的值中包含了多個(gè)工作區(qū)的路徑時(shí),必須設(shè)置GOBIN,否則無法成功安裝Go程序的可執(zhí)行文件
查看全部 -
go get
用于從遠(yuǎn)程代碼倉庫(如GitHub)上下載并安裝代碼包
受支持的代碼版本控制系統(tǒng)有:Git Mercurial(hg) SVN Bazaar
指定的代碼包會被下載到$GOPATH中包含的第一個(gè)工作區(qū)的src目錄中
查看全部 -
用于編譯代碼文件或者代碼包
用于 編譯非命令源碼文件不會產(chǎn)生任何結(jié)果文件
用于 編譯命令源碼文件會在該命令執(zhí)行目錄下生成一個(gè)可執(zhí)行文件
執(zhí)行 go build 并且不追加任何參數(shù),它會試圖把當(dāng)前目錄作為代碼包并編譯
執(zhí)行改命令且以代碼包的導(dǎo)入路徑作為參數(shù)時(shí)時(shí),該代碼包及其依賴會被編譯
執(zhí)行該命令以若干源碼文件作為參數(shù)時(shí),只有這些文件會被編譯
go build 只會編譯歸檔文件不是最新的代碼包
查看全部 -
方法查看全部
-
reader writer查看全部
-
3.2 源碼下載查看全部
-
init函數(shù)的執(zhí)行順序。
同一代碼包內(nèi)順序不確定。
不同代碼包之間init函數(shù)的執(zhí)行順序同代碼包的導(dǎo)入順序相反
查看全部
舉報(bào)