一尘不染

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

go

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

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

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

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

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


阅读 553

收藏
2020-07-02

共1个答案

一尘不染

您需要构造一个新的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转换为[]接口{}吗?

2020-07-02