go中的二维切片类型转换
我被迫为go中的二维切片类型转换,go,casting,Go,Casting,我被迫为[]string定义特定类型,因为我为strSlice类型实现了自定义yaml解析器 现在我需要将[]strSlice转换回[]string,但go编译器1.7.1将其视为错误而拒绝 type strSlice []string var x1 []strSlice var x2 [][]string ... x2 = [][]string(x1) 如何执行强制转换操作 您正在使用一个命名类型的字符串片段。您需要先将x1中的每个条目转换回[]字符串: type strSlice []st
[]string
定义特定类型,因为我为strSlice类型实现了自定义yaml解析器
现在我需要将[]strSlice
转换回[]string
,但go编译器1.7.1将其视为错误而拒绝
type strSlice []string
var x1 []strSlice
var x2 [][]string
...
x2 = [][]string(x1)
如何执行强制转换操作 您正在使用一个命名类型的字符串片段。您需要先将
x1
中的每个条目转换回[]字符串
:
type strSlice []string
var x1 []strSlice
var x2 [][]string
...
for _, s := range x1 {
x2 = append(x2, []string(s))
}
不幸的是,无法一次性完成此操作,因为
x1
中的每个索引都是strSlice
类型,需要转换为[]字符串类型以存储在x2
中。Go不允许您在单个操作中执行此操作,因为开发人员不希望在语法sugar中隐藏O(n)操作。您使用的是一种命名类型的字符串片段。您需要先将x1
中的每个条目转换回[]字符串
:
type strSlice []string
var x1 []strSlice
var x2 [][]string
...
for _, s := range x1 {
x2 = append(x2, []string(s))
}
不幸的是,无法一次性完成此操作,因为x1
中的每个索引都是strSlice
类型,需要转换为[]字符串类型以存储在x2
中。Go不允许您在单个操作中执行此操作,因为开发人员不希望在语法sugar中隐藏O(n)操作