GO語言 6 3 傳遞變長引數

2021-08-20 22:19:06 字數 1030 閱讀 5305

myfunc(a, b, arg ...int) {}

greeting(prefix

string, who ...string)

greeting("hello:", "joe", "anna", "eileen")

import

"fmt"

func

main()

x = min(slice...)

fmt.printf("the minimum in the slice is: %d

", x)

}func

min(s ...int) int

min:= s[0]

for_, v

:=range s

} return min

}the minimum in the slice is: 1

f1(s ...string)

func

f2(s ...string)

func

f3(s string)

定義乙個結構型別,假設它叫options,用以儲存所有可能的引數:

type

options

struct

函式 f1 可以使用正常的引數 a 和 b,以及乙個沒有任何初始化的 options 結構:f1(a, b, options {})。如果需要對選項進行初始化,則可以使用f1(a, b, options )

使用空介面:

如果乙個變長引數的型別沒有被指定,則可以使用預設的空介面inte***ce{},這樣就可以接受任何型別的引數(詳見第 11.9 節)。該方案不僅可以用於長度未知的引數,還可以用於任何不確定型別的引數。一般而言我們會使用乙個 for-range 迴圈以及 switch 結構對每個引數的型別進行判斷:

func

typecheck(..,..,values … inte***ce{})

}}

Go語言傳遞變長引數

如果函式的最後乙個引數是採用.type的形式,那麼這個函式就可以處理乙個變長的引數,這個長度可以為 0,這樣的函式稱為變參函式。func myfunc a,b,arg int 這個函式接受乙個類似某個型別的 slice 的引數 詳見第 7 章 該引數可以通過第 5.4.4 節中提到的 for 迴圈結...

golang傳遞變長引數

函式的最後乙個引數是.type type typ e的形式,說明這個函式可以處理變長引數,這個函式稱為變參函式。引數儲存在sli ce slice slic e型別的變數sli ce slice slic e中,則通過sli ce.slice.slice.來傳遞引數,呼叫函式。package mai...

shell 向 awk 傳遞變數引數

本文翻譯自stackoverflow提問 how do i use shell variables in an awk script?但更改了文章段落結構和部分表述。使用 v選項 p.s.記得在選項和變數名之間加上空格 variable line one nline two awk v var va...