How to pass variable length arguments as arguments on another function in Golang?

Kokizzu picture Kokizzu · Nov 27, 2014 · Viewed 26.4k times · Source

How to pass variable length arguments in Go? for example, I want to call

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)

Answer

Kokizzu picture Kokizzu · Nov 27, 2014

Ah found it...functions that accept variable length arguments are called Variadic Functions. Example:

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");
}