Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
go中的二维切片类型转换_Go_Casting - Fatal编程技术网

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)操作