首頁 > 後端開發 > Golang > golang 不定參

golang 不定參

WBOY
發布: 2023-05-16 16:22:38
原創
686 人瀏覽過

Golang中的不定參函數是指函數可以接受不同數量的參數。在函數定義的時候,可以用三個點「...」來表示參數數量不固定,這些參數會被打包成一個slice。

在Golang中,一個函數的參數列表中只能有一個不定參,通常放在參數列表的最後一個。

例如,下面是一個計算任意多個整數總和的函數:

func sum(nums ...int) int {
    total := 0
    for _, num := range nums {
        total += num
    }
    return total
}
登入後複製

在函數簽章中,使用了三個點「...」來表示不定參,參數名為“nums”,資料型別為“int”,因此“nums”實際上是一個整數的slice。

當呼叫這個函數時,可以傳遞任意數量的整數作為參數,不需要指定參數的數量:

fmt.Println(sum(1, 2, 3))      // 输出 6
fmt.Println(sum(10, 20, 30, 40)) // 输出 100
登入後複製

不定參函數具有很強的靈活性,可以處理多種不同類型和數量的參數。以下是一個例子,用於計算兩個或三個浮點數的平均值:

func avg(nums ...float64) float64 {
    sum := 0.0
    for _, num := range nums {
        sum += num
    }
    return sum / float64(len(nums))
}

fmt.Println(avg(1.0, 2.0))         // 输出 1.5
fmt.Println(avg(1.0, 2.0, 3.0))    // 输出 2.0
登入後複製

需要注意的是,Go語言中,不定參在函數呼叫時同樣要遵循傳參的順序。例如下面這個例子,如果將參數放反,函數就會報錯:

func foo(num int, strs ...string) {
    fmt.Println(num)
    fmt.Println(strs)
}

foo("hello", "world", 1)  // 报错!第一个参数应该是整数类型
登入後複製

在函數內部,可以像操作slice一樣,使用for迴圈對不定參進行迭代,並對其中的每個元素進行處理。在處理完不定參之後,也可以使用len()函數來取得不定參的數量。

總之,在Golang中,不定參函數可以大幅提高程式的靈活性和實用性,對於不確定數量和類型的參數處理非常方便且快速。

以上是golang 不定參的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板