在64位OS计算机上,
对于以下代码:
println("Simple Array:")
var arrayint = [...]int{1, 2, 3, 4} //assign
fmt.Println(arrayint)
println("Simple Slice:")
var sliceint []int
sliceint = arrayint[:] //assign
fmt.Println(sliceint)
下面是内存表示形式:
对于以下代码:
println("Array of arrays:")
var arrayofarrays [3][len(arrayint)]int
for i := range arrayofarrays { //assign
arrayofarrays[i] = arrayint
}
fmt.Println(arrayofarrays)
println("Array of slices:")
var arrayofslice [len(arrayofarrays)][]int
for i := range arrayofarrays { // assign
arrayofslice[i] = arrayofarrays[i][:]
}
fmt.Println(arrayofslice)
println("Slice of arrays:")
var sliceofarray [][len(arrayint)]int
sliceofarray = arrayofarrays[:]
fmt.Println(sliceofarray)
编辑:下面是内存表示形式:
对于以下代码:
var sliceofslices [][]int
下面是内存表示形式:
对于下面的行:
sliceofslices = arrayofslice[:]
sliceofslices
的内存表示是什么?使用前需要了解...
最佳答案
arrayofslice
是 slice 的数组,并且由于 slice 的大小为24个字节,因此arrayofslice
的大小为n * 24,其中n
是元素计数。 sliceofslices
是具有后备数组arrayofslice
的 slice 。
关于arrays - 了解数组和 slice 的内存布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61159244/