我发现自己对array
和slice
数据类型感到困惑。
从Go文档中,数组描述如下:
在Go和C中,数组的工作方式之间存在主要差异。在Go中,
数组是值。将一个数组分配给另一个数组将复制所有元素。
特别是,如果将数组传递给函数,它将接收该数组的副本,而不是指向它的指针。
数组的大小是其类型的一部分。类型[10] int和[20] int是不同的。
职能:
与C系列中的所有语言一样,Go中的所有内容都按值传递。也就是说,函数总是获得所传递事物的副本,就像有一个赋值语句将值分配给参数一样。例如,将int值传递给函数将构成int的副本,而将指针值传递将使指针进行复制,但不复制其指向的数据。
为什么sort.Ints(arrayValue)
在声明为数组而不是切片时修改传递的变量?
代码
var av = []int{1,5,2,3,7}
fmt.Println(av)
sort.Ints(av)
fmt.Println(av)
return
输出
[1 5 2 3 7]
[1 2 3 5 7]
慕村225694
慕标琳琳
慕森卡
相关分类