在 Golang 中将 []interface{} 转换为 []string
使用 github.com/fatih/structs 包时,您可能会遇到需要将从 toValues() 函数获取的 []interface{} 值转换为 []string 以便与 csv 一起使用的情况 包裹。但是,无法直接执行此转换,因为这些类型的内存布局不同。
要解决此问题,您必须定义如何将各种类型的值表示为字符串。一种简单的方法是迭代这些值并使用 fmt.Sprint() 来获取字符串表示形式。
以下代码示例演示了这一点:
t := []interface{}{ "zero", 1, 2.0, 3.14, []int{4, 5}, struct{ X, Y int }{6, 7}, } s := make([]string, len(t)) for i, v := range t { s[i] = fmt.Sprint(v) }
这将产生以下输出:
[zero 1 2 3.14 [4 5] {6 7}] ["zero" "1" "2" "3.14" "[4 5]" "{6 7}"]
通过采用这种技术,您可以轻松地将包含不同类型值的 []interface{} 转换为 []string,让您有效地利用 csv 包进行进一步处理。
以上是如何在 Go 中将 []interface{} 转换为 []string?的详细内容。更多信息请关注PHP中文网其他相关文章!