gpt4 book ai didi

arrays - Go:数组的数组, slice 的数组,数组的 slice 和 slice 的 slice

转载 作者:IT王子 更新时间:2023-10-29 00:57:00 28 4
gpt4 key购买 nike

试图自学,但发现很难找到示例,我的大脑已经陷入了困境。非常不确定 3 和 4,需要帮助才能使 5 正常工作。

package main
import "fmt"

func main () {
println("0. Array:")
var a = [...]int{4,5,6,7,8,9} //assign
fmt.Println(a,"\n")

println("1. Slice:")
var as []int
as = a[:] //assign
fmt.Println(as,"\n")

println("2. Array of arrays:")
var b [4][len(a)]int
for i:= range b { //assign
b[i]=a
}
fmt.Println(b,"\n")

println("3. Array of slices:")
var d [len(b)][]int
for i:= range b { // assign
d[i] = b[i][:] //does this really work?
}
fmt.Println(d,"\n")

println("4. Slice of arrays:")
var c [][len(a)]int
c = b[:][:] // assign, does this really work?
fmt.Println(c,"\n")

println("5. Slice of slices:")
var e [][]int
// e = c // ???
fmt.Println(e,"\n")
}

最佳答案

第 3 部分有效。

第 4 部分包含不必要的 [:]

println("4. Slice of arrays:")
var c [][len(a)]int
c = b[:] // one [:], not two
fmt.Println(c, "\n")

b[:] 被评估为一个 slice ,其中每个元素都是一个 [len(a)]int。如果您添加另一个 [:],您将再次 slice 。因为对于任何 slice s,s[:] == s,它是一个无操作。

第 5 部分,您可以对 slice 数组进行 slice 。

println("5. Slice of slices:")
var e [][]int
e = d[:]
fmt.Println(e, "\n")

我在 http://play.golang.org/p/WDvJXFiAFe 发布了一个完整的示例.

关于arrays - Go:数组的数组, slice 的数组,数组的 slice 和 slice 的 slice ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13499923/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com