具有一个带有float64值的切片。我想乘以它们而不分配新的内存。有可能吗?
multiple(&slice)
func multiple(slice *[]float64) {
for index, value := range *slice {
??? = value * 100
}
}
这应该起作用:
func multiple(slice *[]float64) {
for index, value := range *slice {
(*slice)[index] = value * 100
}
}
您正在传递指向切片的指针。您确定这就是您所需要的吗?以下内容也可以工作:
func multiple(slice []float64) {
for index, value := range slice {
slice[index] = value * 100
}
}
当您传递*[]float64
时,该函数将获得指向切片的指针。要使用切片的元素,该函数必须先解除对指针的引用,然后再解除对切片所指向的数组的引用。
当您传递[]float64
时,该函数将获得一个切片,其中包含指向基础数组,长度和容量的指针。