有一个包含 float64 值的切片。我想在不分配新内存的情况下将它们相乘。是否可以?
multiple(&slice)
func multiple(slice *[]float64) {
for index, value := range *slice {
??? = value * 100
}
}
Run Code Online (Sandbox Code Playgroud)
Bur*_*dar 11
这应该有效:
func multiple(slice *[]float64) {
for index, value := range *slice {
(*slice)[index] = value * 100
}
}
Run Code Online (Sandbox Code Playgroud)
您正在传递一个指向切片的指针。您确定这就是您需要的吗?以下也可以工作:
func multiple(slice []float64) {
for index, value := range slice {
slice[index] = value * 100
}
}
Run Code Online (Sandbox Code Playgroud)
当您传递 时*[]float64,该函数将获取指向切片的指针。要使用切片的元素,该函数必须取消引用指针,然后取消引用切片指向的数组。
当您传递 时[]float64,该函数会获取一个切片,其中包含指向基础数组的指针、长度和容量。