Golang 菜鳥教程

Golang 控制語句

Golang 函數(shù) & 方法

Golang 結(jié)構(gòu)體

Golang 切片 & 數(shù)組

Golang 字符串(String)

Golang 指針

Golang 接口

Golang 并發(fā)

Golang 異常(Error)

Golang 其他雜項

Go 語言變參函數(shù)

用不同數(shù)量的參數(shù)調(diào)用的函數(shù)稱為可變參數(shù)函數(shù)。換句話說,允許用戶在可變函數(shù)中傳遞零個或多個參數(shù)。fmt.Printf是可變參數(shù)函數(shù)的示例,它在開始時需要一個固定的參數(shù),之后它可以接受任意數(shù)量的參數(shù)。

重要事項:

  • 在可變參數(shù)函數(shù)的聲明中,最后一個參數(shù)的類型前面帶有省略號,即()。它表明該函數(shù)可以調(diào)用任意數(shù)量的這種類型的參數(shù)

    語法:

    function function_name(para1, para2...type)type{
        // code...
    }
  • 函數(shù)function …type的行為類似于切片(slice)。例如,假設(shè)我們有一個函數(shù)簽名,即add(b…int)int,現(xiàn)在是type [] int的參數(shù)。

  • 您還可以在可變參數(shù)函數(shù)中傳遞現(xiàn)有切片。為此,我們將完整數(shù)組的一部分傳遞給函數(shù),如下面的示例2所示。

  • 當(dāng)您在可變參數(shù)函數(shù)中不傳遞任何參數(shù)時,函數(shù)內(nèi)部的默認(rèn)為nil。

  • 可變參數(shù)函數(shù)通常用于字符串格式化。

  • 您還可以在可變參數(shù)函數(shù)中傳遞多個切片。

  • 您不能將可變參數(shù)用作返回值,但可以將其作為切片返回。

零個參數(shù)和多個參數(shù)演示示例:

package main

import (
    "fmt"
    "strings"
)

//可變參數(shù)函數(shù)聯(lián)接字符串
func joinstr(element ...string) string {
    return strings.Join(element, "-")
}

func main() {

    //零參數(shù)
    fmt.Println(joinstr())

    //多個參數(shù)
    fmt.Println(joinstr("GEEK", "GFG"))
    fmt.Println(joinstr("Geeks", "for", "Geeks"))
    fmt.Println(joinstr("G", "E", "E", "k", "S"))

}

輸出:

GEEK-GFG
Geeks-for-Geeks
G-E-E-k-S

范例2,可變參數(shù)函數(shù)聯(lián)接字符串,在可變函數(shù)中傳遞一個切片:

package main 
  
import( 
    "fmt"
    "strings"
) 
  
//可變參數(shù)函數(shù)聯(lián)接字符串
func joinstr(element...string)string{ 
    return strings.Join(element, "-") 
} 
  
func main() { 
     
   //在可變函數(shù)中傳遞一個切片
   element:= []string{"geeks", "FOR", "geeks"} 
   fmt.Println(joinstr(element...)) 
}

輸出:

geeks-FOR-geeks

當(dāng)我們使用可變參數(shù)函數(shù)時:

  • 當(dāng)您要在函數(shù)中傳遞切片時,使用可變參數(shù)函數(shù)。

  • 當(dāng)我們不知道參數(shù)的數(shù)量時,使用可變參數(shù)函數(shù)。

  • 在程序中使用可變參數(shù)函數(shù)時,它可以增加程序的可讀性。

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清