为了账号安全,请及时绑定邮箱和手机立即绑定

如何获取一组数组(字符串)并在 Golang 中创建这些数组的多维切片?

如何获取一组数组(字符串)并在 Golang 中创建这些数组的多维切片?

Go
小唯快跑啊 2022-11-08 10:41:58
我正在尝试实现一个函数,当传递一个字符串数组时,它会创建一个数组切片,并将每个传递的数组添加到其中。它将返回所有传递的数组的最后一个切片。作为一个测试,我初始化了 4 个数组并尝试创建一个函数来执行此操作。然而,它失败得相当惨。这就是我到目前为止所拥有的。不知道该怎么做。func main() {    array1 := []string{"x", "o", "x", "_", "_"}    array2 := []string{"0", "o", "x", "_", "_"}    array3 := []string{"o", "o", "o", "_", "_"}    array4 := []string{"o", "o", "o", "o", "o"}    FinalSlice(array1)    FinalSlice(array2)    FinalSlice(array3)    fmt.Println(FinalSlice(array4))}func FinalSlice(array []string) [][]string {    var slice [][]string    for i, _ := range slice {        slice[i] = array    }    return slice}现在这是输出:[]
查看完整描述

2 回答

?
烙印99

TA贡献1829条经验 获得超13个赞

那是因为你遍历了一个没有元素的空切片。


所以你的循环


for i, _ := range slice {}

实际上会运行 0 次迭代(这就是你最终得到一个空数组的原因)。


我不明白你想要达到的确切结果,但是如果你想将数组连接成一个多维的,你可以使用下面的代码:


package main


import "fmt"


func AppendSlice(source [][]string, value []string) [][]string {

    return append(source, value)

}


func main() {

    array1 := []string{"x", "o", "x", "_", "_"}

    array2 := []string{"0", "o", "x", "_", "_"}

    array3 := []string{"o", "o", "o", "_", "_"}

    array4 := []string{"o", "o", "o", "o", "o"}


    var finalArray [][]string


    finalArray = AppendSlice(finalArray, array1)

    finalArray = AppendSlice(finalArray, array2)

    finalArray = AppendSlice(finalArray, array3)

    finalArray = AppendSlice(finalArray, array4)


    // [[x o x _ _] [0 o x _ _] [o o o _ _] [o o o o o]]

    fmt.Println(finalArray) 

}


这可能会在很多方面得到改进,请随意使用此解决方案:https ://go.dev/play/p/vXvqlRZuOUI


查看完整回答
反对 回复 2022-11-08
?
德玛西亚99

TA贡献1770条经验 获得超3个赞

就不能说类似的话


func bundleSlices( slices ...[]int) [][]int {

    return slices

}

接着:


package main


import "fmt"


func main() {

    arr1 := []int{1, 2, 3}

    arr2 := []int{4, 5, 6}

    arr3 := []int{7, 8, 9}


    bundled := bundleSlices( arr1, arr2, arr3 )


    fmt.Println(bundled)


}

要得到


[[1 2 3] [4 5 6] [7 8 9]]


查看完整回答
反对 回复 2022-11-08
  • 2 回答
  • 0 关注
  • 101 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信