亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在Golang中,uint16 VS int,哪個成本更低?

在Golang中,uint16 VS int,哪個成本更低?

Go
繁花不似錦 2021-12-27 15:25:51
我正在使用 64 位服務器。我的 golang 程序需要整數類型。所以,如果我在源代碼中使用 uint16 和 uint32 類型,它是否比使用大多數常規 int 類型花費更多?我正在考慮計算成本和開發成本。
查看完整描述

1 回答

?
呼啦一陣風

TA貢獻1802條經驗 獲得超6個贊

對于絕大多數情況,使用int更有意義。以下是一些原因:

  1. Go 不會在數字類型之間隱式轉換,即使您認為應該這樣做。如果您開始使用一些無符號類型而不是int,您應該期望您的代碼具有多種類型轉換,因為其他庫或 API 更喜歡不打擾無符號類型,因為無類型常量數值表達式返回int值等。

  2. 無符號類型比有符號類型更容易發生下溢,因為 0(無符號類型的邊界值)在計算機程序中比 -9223372036854775808 更像是一個自然發生的值。

  3. 如果您想使用無符號類型,因為它限制了您可以放入其中的值,請記住,當您將靜默下溢和僅編譯時常量傳播結合使用時,您可能無法獲得想要的便宜貨。例如,雖然您無法將常量轉換math.MinInt64為 a uint,但您可以輕松地將int帶值的變量轉換math.MinInt64為 a uint。并且可以說,if檢查您嘗試分配的值是否對您的程序有效并不是一種糟糕的 Go 風格。

除非您遇到顯著的內存壓力并且您的價值空間略高于較小的有符號類型為您提供的空間,否則我認為int即使只是因為開發成本,使用也會更有效率。即便如此,也有可能是程序內存占用的其他地方存在問題,或者像 Go 這樣的托管語言不適合您的需求。


查看完整回答
反對 回復 2021-12-27
  • 1 回答
  • 0 關注
  • 216 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號