V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Sparetire
V2EX  ›  Rust

Rust 中说的不可变指的是什么?

  •  
  •   Sparetire · 2019-01-11 14:26:34 +08:00 · 3982 次点击
    这是一个创建于 2141 天前的主题,其中的信息可能已经有所发展或是发生改变。

    RT, Rust 中说变量默认是不可变的, 这里的不可变, 是指绑定不可变, 还是指值不可变呢? 或两者都有?

    这块的表述可能不是很准确, 只在大学学过 C, 其实我就是想问, 这个是类似于 int const* p 还是类似于 int* const p 这样的?

    2 条回复    2019-01-15 22:44:10 +08:00
    quinoa42
        1
    quinoa42  
       2019-01-14 14:14:13 +08:00
    除去极其个别的情况(你后面会学到),如果要修改函数的某个参数或是变量,需要要么 own 那个值,要么有 mutable reference
    reference 实际上相当于是 const pointer,不能修改指向的地址位置的(用 Rustacean 的话来讲,你只是 borrow 了这个变量)

    也就是说是:&bla == ??? const *const bla
    &mut bla == ??? * const bla
    mut bla = ??? bla
    bla = ??? const bla

    我也是前段时间才开始学 rust,如有错误请多多指正
    Sparetire
        2
    Sparetire  
    OP
       2019-01-15 22:44:10 +08:00   ❤️ 1
    @quinoa42 我的理解是类似于 const int * const p 这样的, 即指向不可变, 值也不可变...
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1313 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 23:40 · PVG 07:40 · LAX 15:40 · JFK 18:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.