gpt4 book ai didi

go - 转到下标指针引用

转载 作者:行者123 更新时间:2023-12-01 22:34:55 25 4
gpt4 key购买 nike

s的结果是[1, 2, 3],我认为 slice 包含对基础数组的引用。不是这样吗

package main

import (
"fmt"
)

func main() {
s := []int{1, 2, 3}
ss := s[1:]
ss = append(ss, 4)

for _, v := range ss {
v += 10
}

for i := range ss {
ss[i] += 10
}

fmt.Println(s)
}

最佳答案

似乎您已经创建了slice s的副本,并且已经对slice copy ss进行了更改,以为所做的更改也将传递给该副本所基于的slice。

第一个for循环还遍历了片ss的元素,但实际上并未对其进行任何处理,因为range在为您提供元素值时也会创建一个副本,因此实际上不执行任何操作!

似乎您正在尝试执行以下操作:

  • 将值4附加到 slice s
  • slice的索引1到 slice 的末尾取每个值,并添加10

  • 如果是这种情况,这应该可以帮助您实现:

    package main

    import (
    "fmt"
    )

    func main() {
    s := []int{1, 2, 3}
    s = append(s, 4)

    for i := range s {
    if i == 0 {
    continue
    }
    s[i] += 10
    }

    fmt.Println(s)
    }

    您可以在Go操场上看到它: Link

    关于go - 转到下标指针引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59696221/

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