【问题标题】:How to pass variable length arguments as arguments on another function in Golang?如何将可变长度参数作为参数传递给 Golang 中的另一个函数?
【发布时间】:2014-11-27 11:04:56
【问题描述】:

如何在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)

【问题讨论】:

    标签: function go variadic-functions


    【解决方案1】:

    啊,找到了...接受可变长度参数的函数称为可变参数函数。示例:

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

    【讨论】:

    • 对于那些想要参考的人......请参阅Effective Go
    • 请注意,对 MyPrint 的最终调用缺少一个参数,因此 fmt 会抱怨缺少 %d 要打印的参数
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-22
    • 1970-01-01
    • 2017-08-07
    • 2019-10-09
    • 2021-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多