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

String 如何在Go中将[]接口{}转换为[]字符串?,string,go,String,Go,目前我正在处理一些代码,其中涉及一个类型为[]interface{} 它里面有价值,我可以很容易地访问它,就像这样: //given that args is of type []interface{} name := args[0] age := args[1] //ect... 这很好,但我希望能够使用stringsJoin函数,它通常会出错,因为它需要类型[]string,而不是类型[]接口{} 如果能够使用Join函数,我想最合适的解决方案是什么,可能是转换时的某种类型?为了使用字符

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

它里面有价值,我可以很容易地访问它,就像这样:

//given that args is of type []interface{}
name := args[0]
age  := args[1] //ect...
这很好,但我希望能够使用
strings
Join
函数,它通常会出错,因为它需要类型
[]string
,而不是类型
[]接口{}


如果能够使用
Join
函数,我想最合适的解决方案是什么,可能是转换时的某种类型?

为了使用
字符串,您需要构造一个类型为
[]string
的新数组。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常见问题解答条目:

将此文档作为您的朋友:)我想补充一点,使用
接口{}
而不是特定类型,存在速度较慢的缺点,如果您不使用任何goroutines,我运行的一些测试的不知羞耻的插件,其速度会降低近7倍: