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