我被限制为[]string定义特定类型,因为我为strSlice类型实现了一个自定义yaml解析器。
现在我需要将[]strSlice转换回[][]string,但是go编译器1.7.1拒绝它为一个错误。
type strSlice []string
var x1 []strSlice
var x2 [][]string
...
x2 = [][]string(x1)我怎样才能执行演员的手术?
发布于 2016-10-20 14:40:41
您使用的是字符串片的命名类型。您需要首先将x1中的每个条目转换回[]string:
type strSlice []string
var x1 []strSlice
var x2 [][]string
...
for _, s := range x1 {
x2 = append(x2, []string(s))
}https://play.golang.org/p/5iJT2Hsv1R
不幸的是,不可能一蹴而就,因为x1中的每个索引都是strSlice类型,需要转换为[]string类型以存储在x2中。Go不允许您在单个操作中执行此操作,因为开发人员不希望在语法糖中隐藏O(n)操作。
https://stackoverflow.com/questions/40157428
复制相似问题