登录
首页 >  Golang >  Go问答

我如何将字符串作为 ...interface{} 参数传递

来源:stackoverflow

时间:2024-04-27 09:45:35 361浏览 收藏

哈喽!大家好,很高兴又见面了,我是golang学习网的一名作者,今天由我给大家带来一篇《我如何将字符串作为 ...interface{} 参数传递》,本文主要会讲到等等知识点,希望大家一起学习进步,也欢迎大家关注、点赞、收藏、转发! 下面就一起来看看吧!

问题内容

当参数为 ...strings 时,我知道如何传递它

但是这个例子有点不同:

func main() {
    args := []string{"hello", "world"}
    fmt.Println(args...)
}

https://play.golang.org/p/7eldqqvdpvr

上面的代码抛出错误 cannot use args (type [] string) as type [] interface {} in argument to fmt.println

实现这一目标的最惯用的方法是什么?


解决方案


这可以通过以下两种方式之一完成:

args := []interface{}{"hello", "world"}
   fmt.println(args...)

或者:

args:=[]string{"hello", "world"}
  iargs:=make([]interface{},0)
  for _,x:=range args {
     iargs=append(iargs, x)
  }
  fmt.Println(iargs...)

您可以在需要 interface{} 的情况下传递 string,但在需要 []interface{} 的情况下不能传递 []string。编译器会将 string 值转换为 interface{} 值,但数组不会这样做,您必须自己进行转换。

好了,本文到此结束,带大家了解了《我如何将字符串作为 ...interface{} 参数传递》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>