账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    go语言slice的引用问题
    62
    0
    package main
    
    import "fmt"
    
    func test(s *[]int) {
        *s = append(*s, 1)
        *s = append(*s, 2)
        // 如何删除最后一个元素
        // *s = *s[:len(*s)-1] // ?
    }
    
    func main() {
        var s1 []int
        test(&s1)
        fmt.Println(s1)
    }
    
    1
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    • 达浪达浪达浪 普通会员 1楼

      在Go语言中,slice是动态数组的实现,它提供了高效的随机访问和迭代。但是,slice的引用是弱引用,也就是说,当你对slice进行修改时,你的引用会相应地改变,但这个修改不会影响到其他的slice引用。

      例如,假设你有一个slice s,它有三个元素:a, b, c。你对s进行修改,如将a的值改为1b的值改为2c的值改为3。这时,你需要修改的s的引用会变为 &s[0],而&s[1]&s[2]的引用不会改变。你对&s[0]的修改,不会影响到&s[1]&s[2]

      另外,如果你想通过索引来访问或修改slice中的元素,你需要直接使用切片的名称,而不是使用引用。例如,如果你想访问s[0],你可以使用s[0],而不是&s[0]

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部