首页 > 其他 > 详细

Rust 每日千行之旅<1>:变量、可变性、常量、隐藏

时间:2017-10-31 20:38:10      阅读:222      评论:0      收藏:0      [点我收藏+]

rust 是强类型语言,所有变量、常量都必须有明确的数据类型;很多情况下,省略类型声明,编译器可自动推导,但不是所有情况下都会成功。

 

一、rust 中的变量值默认是不允许改变的,即不可二次斌值,如下代码无法通过编译,需要在变量前添加 mut 标识

fn main() {
    let zVar: i64 = 0;    // let mut zVar: i64 = 0;
    zVar = 1;
    println!("{}", zVar);
}

二、rust 中可以连续定义同名变量,新的变量将覆盖旧的变量,且前后的变量类型可以不一致:即 shadowing 特性。

fn main() {
    let zvar: i32 = 0;
    let zvar: i32 = zvar + 1;
    let zvar: i32 = zvar * 2;
    let zvar: &str = "Hello World!";
    let zvar = zvar.len();

    println!("{}", zvar);
}

三、rust 中常量定义必须显示指明数据类型,同一作用域内不可重名,局部定义覆盖全局定义。

const GLOB_NUM: f64 = 0.0;    // 右值必须符合左值声明的数据类型,如指定 f64,但右值赋值为 1,则无法通过编译。

fn main() {
    let zvar: i32 = 0;
    let zvar: i32 = zvar + 1;
    let zvar: i32 = zvar * 2;
    let zvar: &str = "Hello World!";
    let zvar = zvar.len();

    const GLOB_NUM: f64 = 1.0;

    println!("{} {}", zvar, GLOB_NUM);
}

____

Rust 每日千行之旅<1>:变量、可变性、常量、隐藏

原文:http://www.cnblogs.com/hadex/p/7763481.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!