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倍: