gpt4 book ai didi

go - 在Golang中更改slice的指针的值

转载 作者:行者123 更新时间:2023-12-01 22:33:11 24 4
gpt4 key购买 nike

有一个带有float64值的 slice 。我想乘以它们而不分配新的内存。可能吗?

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
}
}

您正在传递指向 slice 的指针。您确定这就是您所需要的吗?以下内容也可以工作:
func multiple(slice []float64) {

for index, value := range slice {
slice[index] = value * 100
}
}

当您传递 *[]float64时,该函数将获得指向 slice 的指针。要使用 slice 的元素,函数必须先取消引用指针,然后再取消引用 slice 所指向的数组。

当您传递 []float64时,该函数将获得一个 slice ,该 slice 包含指向基础数组,长度和容量的指针。

关于go - 在Golang中更改slice的指针的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58446373/

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