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

如何在Go中将[] interface {}转换为[]字符串?

羊舌青青
2023-03-14
问题内容

目前,我目前正在处理一些代码,其中涉及类型为var的 []interface{}

它具有价值,我可以像这样轻松访问:

//given that args is of type []interface{}
name := args[0]
age  := args[1] //ect...

很好,但是我希望能够使用该strings Join函数,由于它需要type []string而不是type
,因此通常会出错[]interface{}

可以使用该Join功能的最合适的解决方案是什么,我想也许是某种转换方法


问题答案:

您需要构造一个新的type数组[]string才能使用strings.Join

import "fmt"
import "strings"

func main() {
    s1 := []interface{}{"a", "b", "c"}
    s2 := make([]string, len(s1))
    for i, s := range s1 {
        s2[i] = s.(string)
    }
    fmt.Println(strings.Join(s2, ", "))
}

请参阅相关的Golang常见问题解答条目:我可以将[]
T转换为[]接口{}吗?



 类似资料:
  • 问题内容: 我正在使用docopt来解析命令行参数。此方法有效,并生成地图,例如 现在,我想将and和值连接到一个字符串,两个值之间用冒号表示。基本上,诸如: 不幸的是,这不起作用,因为我收到了错误消息: 无效的操作:arguments [“”] +“:”(类型不匹配的接口{}和字符串) 因此,显然我需要将从映射中获得的值(就是,所以可以是任何东西)转换为字符串。现在我的问题是,我该怎么做? 问题

  • 问题内容: s是“ E”,但我想要的是“ 123” 请告诉我如何获得“ 123”。 在Java中,我可以这样进行: 如何在Go中输入两个字符串? 问题答案: 使用包的功能。 例如: 您可以简单地通过添加字符串或使用包的功能来连接字符串。

  • 问题内容: 我有一个大小字节数组,做完之后。 我得到错误: 无法将b(类型[16] byte)转换为字符串类型 问题答案: 您可以将其称为切片:

  • 问题内容: 我是Go的新手,正在尝试执行以下操作: 我搜索了很多,但真的不知道该怎么做。 我知道这行不通: 问题答案: 这不是实现它的最有效方法,但是您可以简单地编写: 被称为:

  • 问题内容: 如何在Golang中将大整数转换为字符串(或整数)? 问题答案: 只需使用以下方法:http : //golang.org/pkg/math/big/#Int.String

  • 问题内容: 我想转换一个叫到(或使用),但它不能做的工作。Go中惯用的方式是什么? 问题答案: 使用strconv包 docs func FormatBool(b bool)字符串Formatbool 根据b的值返回“ true”或“ false”