為什麼 rune 是 Go 中 int32 的別名,而不是 uint32?
儘管 rune 類型的主要目的是表示字元值,但 rune 類型Go 中沒有定義為 uint32 的別名。相反,它是 int32 的別名。鑑於字元通常由正值表示,此選擇似乎違反直覺。
此決定背後的基本原理源於符文作為 Unicode 代碼點佔位符的作用,該佔位符超出了 ASCII 字元的範圍。 Unicode 代碼點可以是正數或負數,並且使用 int32 允許 Go 程式設計師在涉及符文的算術運算期間檢測潛在的溢出或錯誤。
另一方面,Uint32 是一種無符號整數類型,只能保存正數價值觀。這將阻止檢測負符文值,這可能會導致依賴識別溢位情況的程式碼出現細微錯誤。
相反,位元組類型(uint8 的別名)專門用於表示 ASCII 字元。由於 ASCII 字元始終為正數,因此使用無符號整數類型作為位元組是合適的。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3