如何将变量长度参数作为参数传递给Golang中的另一个函数?

Kok*_*zzu 50 function variadic-functions go

如何传递变长参数Go?例如,我想打电话

func MyPrint(format string, args ...interface{}) {
  fmt.Printf("[MY PREFIX] " + format, ???)
}

// to be called as: MyPrint("yay %d", 213) 
//              or  MyPrint("yay")
//              or  MyPrint("yay %d %d",123,234)
Run Code Online (Sandbox Code Playgroud)

Kok*_*zzu 87

啊发现它...接受可变长度参数的函数称为Variadic函数.例:

package main

import "fmt"

func MyPrint(format string, args ...interface{}) {
  fmt.Printf("[MY PREFIX] " + format, args...)
}

func main() {
 MyPrint("yay %d %d\n",123,234);
 MyPrint("yay %d\n ",123);
 MyPrint("yay %d\n");
}
Run Code Online (Sandbox Code Playgroud)

  • 请注意,对 MyPrint 的最终调用缺少一个参数,因此 fmt 会抱怨缺少 %d 要打印的参数 (2认同)