web-dev-qa-db-fra.com

Comment passer des arguments de longueur variable comme arguments sur une autre fonction dans Golang?

Comment passer des arguments de longueur variable dans Go? par exemple, je veux appeler

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)
50
Kokizzu

Ah, je l'ai trouvé ... les fonctions qui acceptent des arguments de longueur variable sont appelées Fonctions Variadiques. Exemple:

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