在Golang中将[]接口转换为[]字符串

在Golang中将[]接口转换为[]字符串,第1张

在Golang中将[]接口转换为[]字符串

即使所有值都是具体类型,也不能简单地转换

[]interface{}
为,因为这两种类型具有不同的内存布局/表示形式

您必须定义如何用

string
值表示不同类型的值。

最简单和明智的方法是遍历值,并使用它们

fmt.Sprint()
来获取
string
每个值的表示形式,例如:

t := []interface{}{    "zero",    1, 2.0, 3.14,    []int{4, 5},    struct{ X, Y int }{6, 7},}fmt.Println(t)s := make([]string, len(t))for i, v := range t {    s[i] = fmt.Sprint(v)}fmt.Println(s)fmt.Printf("%qn", s)

输出(在Go Playground上尝试):

[zero 1 2 3.14 [4 5] {6 7}][zero 1 2 3.14 [4 5] {6 7}]["zero" "1" "2" "3.14" "[4 5]" "{6 7}"]


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5170688.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-18
下一篇 2022-11-18

发表评论

登录后才能评论

评论列表(0条)

保存