当前位置: 首页 > 面试题库 >

fmt.Sprintf传递参数数组

杨慎之
2023-03-14
问题内容

对不起这个基本问题。我想将一个切片作为参数传递给fmt.Sprintf。像这样:

values := []string{"foo", "bar", "baz"}
result := fmt.Sprintf("%s%s%s", values...)

结果将是foobarbaz,但这显然不起作用。

(我要格式化的字符串比这要复杂的多,因此,简单的串联是不会做到的:)

所以问题是:如果我有数组,如何将其作为单独的参数传递给fmt.Sprintf?或者:我可以调用在Go中传递参数列表的函数吗?


问题答案:

正如您在IRC上发现的那样,它将起作用:

values := []interface{}{"foo", "bar", "baz"}
result := fmt.Sprintf("%s%s%s", values...)

您的原始代码无法正常工作,因为fmt.Sprintf接受a []interface{}并且[]string无法将其隐式或显式转换为该类型。



 类似资料:
  • 您可以将其他数据作为常规方法参数传递到后台任务。我再次使用下面的例子(希望没有让你厌恶): BackgroundJob.Enqueue(() => Console.WriteLine("Hello, {0}!", "world")); 在常规方法调用中,在执行后台作业期间, Console.WriteLine 方法将使用这些参数。为了参数传递进去,需要先序列化。 使用 了不起的 Newtonsof

  • 尽管应用中的大部分组件都依赖其他组件,但并不总是如此。同时 Windsor 用来查找满足依赖的正确组件的默认规则有时不得不进行调整。 如何做到这一点基于值的来源和获取值的地方。 Composition root - container.Resolve container.Resolve 方法有几个重载允许传递 IDictionary 作为参数(在这种情况下,建议使用 [Arguments] 类),

  • 问题内容: 如何将参数传递给javafx中的辅助窗口?有没有办法与相应的控制器通信? 例如:用户从中选择一个客户,TableView然后会打开一个新窗口,显示该客户的信息。 newStage将是新窗口。问题是,我找不到告诉控制器在哪里寻找客户信息的方法(通过将id作为参数传递)。 有任何想法吗? 问题答案: 推荐方法 该答案列举了将参数传递给FXML控制器的不同机制。 对于小型应用程序,我强烈建议

  • 问题内容: 这是我的 angularroute.html Route.js文件包含。 Route1.html 问题是它加载了页面,但我无法在route1.html上接收到获取参数值,表达式也未得到求值。可能是什么问题呢?谢谢。 问题答案: 从路线模板中删除不需要的所有内容。只需要您在模板正文中添加的内容。 这将包含在您在路线中配置的控制器的ng-view中。这是部分而不是完整的html文件。 另外

  • 我在MYSQL服务器上的y db中有一个存储过程。当我试图调用它时,它给出了错误: 通用域名格式。mysql。jdbc。例外。jdbc4。MySQLSyntaxErrorException:过程thu的参数数量不正确。生产者;预期为2,在组织中为0。springframework。jdbc。支持SQLExceptionSubclassTranslator。doTranslate(SQLExcept

  • 我是新手。有人能解释一下这个代码吗 公开课演示2{ } 结果打印出1,2,3,4,5和10,15,5,3