溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

golang中不定參數的應用

發布時間:2020-06-18 11:52:27 來源:億速云 閱讀:615 作者:鴿子 欄目:編程語言

不定參數是指函數傳入的參數個數為不定數量。

一、函數定義

首先來看如何定義一個不定參數的函數:

func YourFun(v... interface{}){
}

該函數定義,定義了一個接受任何數目任何類型參數的函數。這里特殊的語法是三個點“...”,在一個變量后面加上三個點后,表示從該處開始接受不定參數,不同于python,golang的不定參數如果將這里"interface{}" 替換成某一確定類型,那么其就只能接受該類型的不定參數。

二、“...”

上面我們看到有三個點"..."的特殊標記。那么這三個點"..."有啥作用呢?

2.1 不定參數

如上所述,在定義不定參數時,表示從該參數開始記錄不定參數

2.2 解引用slice

當要傳遞若干個值到不定參數函數中得時候,可以手動書寫每個參數,也可以將一個slice傳遞給該函數:

YourFunc (YourSlice...)

通過"..."可以將slice中得參數對應的傳遞給函數。相當于python中得“*args”。

這里要注意的是,解引用slice目前只能在不定參數函數傳遞參數時使用,在其他地方使用會報錯。

三、遍歷參數

下面我們來看一個實例:

func P (v... string) {
for _,item := range v {
    fmt.Println("item:",item)
    }
}
func main() {
    var l []string
    l = append(l,"a")
    l = append(l,"b")
    fmt.Println("l is ",l)
    P(l...)
}

這里我們看到的結果是,首先一個完整的list,然后是每個元素:

l is  [a b]
item: a
item: b

通過配合使用for...range可以遍歷不定參數v中得每個參數。這里我們將不定參數類型設為string,因此只能接受若干的string 類型的參數。

以上就是詳解golang中的不定參數的詳細內容,更多請關注億速云其它相關文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女