Go 學習注意事項

2021-09-24 10:02:22 字數 662 閱讀 7175

自動匹配平台的 int 和 uint

go 語言也有自動匹配特定平台整型長度的型別—— int 和 uint。

可以跨平台的程式語言可以執行在多種平台上。平台的位元組長度是有差異的。64 位平台現今已經較為普及,但 8 位、16 位、32 位的作業系統依舊存在。16 位平台上依然可以使用 64 位的變數,但執行效能和記憶體效能上較差。同理,在 64 位平台上大量使用 8 位、16 位等與平台位數不等長的變數時,編譯器也是盡量將記憶體對齊以獲得最好的效能。

不能正確匹配平台位元組長度的程式就類似於用轎車運一頭牛和用一輛卡車運送一頭牛的情形一樣。

在使用 int 和 uint 型別時,不能假定它是 32 位或 64 位的整型,而是考慮 int 和 uint 可能在不同平台上的差異。

哪些情況下使用 int 和 uint

邏輯對整型範圍沒有特殊需求。例如,物件的長度使用內建 len() 函式返回,這個長度可以根據不同平台的位元組長度進行變化。實際使用中,切片或 map 的元素數量等都可以用 int 來表示。

反之,在二進位制傳輸、讀寫檔案的結構描述時,為了保持檔案的結構不會受到不同編譯目標平台位元組長度的影響,不要使用 int 和 uint。

整型截斷在型別轉換中發生的較為隱性,有些即為難追查的問題,很小一部分是由整型截斷造成。

學習注意事項

培養個人能力靠刷題,可以多參加cf code force 和tc top coder 這兩個比賽,它們是國際性的比賽,並且每隔兩三天都會有一場。當然,一味刷題是不夠的,已經做對的題誠然讓你感到驕傲,但只有不會的題才能給你帶來能力的提公升。面對不會的題,盡力思考,看懂題解,消化之後過了這道題,這是補題...

go語言,環境配置注意事項

go指向空間為 工作空間 不是go所在目錄 還有就是必須配置git路徑 要不無法使用 go的get功能 對了 gobee的bin在空間根目錄裡 不設定環境變數命令也是不能直接使用的 所以也得設定下 這是環境變數參考 沒有gopath的話不能用go get 而且go get必須配置git gopath...

學習指標注意事項

宣告指標的一般形式 資料型別 指標變數名 1 在初始化時賦值 2 在後期賦值 1 通過變數名訪問乙個變數是直接的,通過指標訪問乙個變數是間接的 2 p i 意思是取變數i的位址賦給變數p 1 指標變數名是p,而不是 p 2 指標變數不可以直接賦值 int a 100 int p p 100 編譯不能...