第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

golang 中是否有用于 int 參數(shù)切片或可變數(shù)量的 int 參數(shù)的內(nèi)置 min 函數(shù)?

golang 中是否有用于 int 參數(shù)切片或可變數(shù)量的 int 參數(shù)的內(nèi)置 min 函數(shù)?

Go
慕碼人8056858 2021-11-29 16:09:46
先行者:我剛剛開(kāi)始接觸 golang。這可能被證明是一個(gè)愚蠢的問(wèn)題,因?yàn)閳?zhí)行這些計(jì)算很容易,但我還是會(huì)問(wèn)它,因?yàn)槲以诠雀杷阉鲿r(shí)沒(méi)有找到答案。是否有內(nèi)置函數(shù)返回 int 參數(shù)切片的最小值:func MinIntSlice(v []int) (m int) {    if len(v) > 0 {        m = v[0]    }    for i := 1; i < len(v); i++ {        if v[i] < m {            m = v[i]        }    }    return}OR 可變數(shù)量的 int 參數(shù)中的最小值:func MinIntVarible(v1 int, vn ...int) (m int) {    m = v1    for i := 0; i < len(vn); i++ {        if vn[i] < m {            m = vn[i]        }    }    return}如果不是,最好的“約定”是否只是創(chuàng)建一個(gè)包含這樣的助手的包?
查看完整描述

3 回答

?
瀟湘沐

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超6個(gè)贊

沒(méi)有內(nèi)置的。

如果您只在一個(gè)包中需要此功能,您可以編寫(xiě)一個(gè)未導(dǎo)出的函數(shù)(例如minIntSlice)。

如果您需要在多個(gè)包中使用此功能,您可以創(chuàng)建一個(gè)包并將類似的功能放在那里。您應(yīng)該考慮將此包設(shè)為內(nèi)部 ( https://golang.org/s/go14internal )。

關(guān)于如何改進(jìn)代碼的一些建議:

  1. MinIntSlice將為空切片返回 0。然而 0 也是一個(gè)有效的 min 元素。我認(rèn)為在空切片上調(diào)用 panic 是更好的選擇。

  2. 使用范圍循環(huán):

for i, e := range v {

    if i==0 || e < m {

        m = e

    }

}

通過(guò)不給出值的索引,它會(huì)給你最小值 0,它可能不存在于給定的值中,所以你還必須在索引上應(yīng)用條件。


查看完整回答
反對(duì) 回復(fù) 2021-11-29
?
回首憶惘然

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個(gè)贊

正確指出的那樣,Golang 中沒(méi)有內(nèi)置的 min 或 max 函數(shù)。


但是,我會(huì)建議一個(gè)稍微不同的解決方案:


func MinMax(array []int) (int, int) {

    var max int = array[0]

    var min int = array[0]

    for _, value := range array {

        if max < value {

            max = value

        }

        if min > value {

            min = value

        }

    }

    return min, max

}

這樣就解決了空切片的問(wèn)題:出現(xiàn)運(yùn)行時(shí)錯(cuò)誤 ( index out of range) 并且最大值是免費(fèi)的。:-)


查看完整回答
反對(duì) 回復(fù) 2021-11-29
?
慕雪6442864

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊

   min := s[0]

    for i :=1; i < len(s); i++ {

        if min > s[i] {

            min = s[i]

        }

    }

min > s[i]? min = s[i] : min


查看完整回答
反對(duì) 回復(fù) 2021-11-29
  • 3 回答
  • 0 關(guān)注
  • 186 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)