Golang為什麼沒有整型的max min方法

2021-10-01 07:55:38 字數 878 閱讀 4810

作為有一些經驗的golang開發者,你可能意識到了golang並沒有max/min方法來返回給定的兩個或多個整型數值中的最大值或最小值。其他語言通常會在核心庫中提供這類方法。 你有沒有想過為什麼golang沒有這麼做?

golang確實在math包中提供了max/min方法,但是僅用於對比float64型別。方法的簽名如下:

math.min(float64, float64) float64

math.max(float64, float64) float64

golang為float64提供max/min方法是浮點型別的比較對於大部分開發者來說比較困難。由於涉及精度問題,浮點數的對比往往沒有那麼直接。所以golang在math包中提供了用於浮點數對比的內建方法。

對於int/int64資料型別來說,max/min方法的實現就相當簡單了,任何有基礎程式設計經驗的開發者都可以輕鬆的實現這兩個方法:

func min(x, y int64) int64 

return y

}func max(x, y int64) int64

return y

}

另外,為了盡可能保持golang簡潔乾淨,golang並不支援泛型。所以既然已經有了對比float64資料型別的max/min方法,在同乙個math包中就無法支援同名的但是引數型別不同的方法。也就是說下面的方法無法存在同乙個包中。

math.max(float64, float64) float64

math.max(int64, int64) int64

這也符合golang的設計原則,盡可能保持簡潔乾淨。

為什麼沒有掌聲

首先,我要說明,我是山東人,我是濟南人,所以以下的所有文字,並不是針對某一地域的人 為什麼首先要說明這個,如果你們想知道原因,請去163的體育論壇,看他們的對罵 2005.10.22 為什麼沒有掌聲?今天和哥們去了泉城廣場,沒有辦法,真的不知道應該去哪兒,可以去哪兒?兩個男人嘛 如果一男一女,可能娛...

為什麼沒有Rails Inc?

idc 開源軟體的市場將會在2011年達到60億美元上下的規模。毫無疑問,風險投資商很渴望加入這場輪盤賭。這也是讓我寫這篇文章的原因。顯然這不是因為風險投資商不願意注入資金。我已經和數家公司有過好幾次關於投巨資建立rails inc這樣的談話,但是,我就是不敢興趣。有 很多原因讓我現在對風險自己沒有...

老虎為什麼沒有翅膀

老虎是森林之王,一般成年虎體重有200公斤左右,甚者可達到300多公斤,一般體長在2.5公尺左右。老虎在森林裡捕捉食物有三大利器,身上的花紋提供接近獵物和隱藏自己,牙齒與利爪可以撕裂獵物,腿部的爆發力可以快速撲到獵物,老虎不愧為山中之王。老虎的厲害是公認的,有人認為老虎長了翅膀會更厲害,天下無敵。有...