标签:无法 类型 推导 允许 code 隐藏 指定 span 1.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); }
____
标签:无法 类型 推导 允许 code 隐藏 指定 span 1.0
原文地址:http://www.cnblogs.com/hadex/p/7763481.html