标志符以:
- 字母开头,后面跟字母、数字、_、None
- _开头,但后面有字母、数字或_
- r#开头,后接 rust 关键字或字母,称为row identifier
Rust 中,语句没有返回值,而表达式有,这是他俩的重要区别
且语句以分号结尾,而表达式无分号
let y = 5;是一个语句fn func()是一个语句{}是一个表达式fu func() ->i32 { 10 }是有效的声明,函数 func 返回 10let y = { lex x = 3; x+1 }是有效的声明,y 的值是 x+1 即 4
Rust 并没有空值,不过它确实拥有一个可以编码存在或不存在概念的枚举。
这个枚举是Option<T>
Option 有两个可能值,Some 和 None
let null: Option<i32> = None;
let some: Option<i32> = Some(12);为了拥有一个可能为空的值,你必须要显式的将其放入对应类型的
Option<T>中。接着,当使用这个值时,必须明确的处理值为空的情况。只要一个值不是Option<T>类型,你就可以安全的认定它的值不为空
为了避免和 None 值计算或调用,Rust 将抛出编译错误
let x: i8 = 5;
let y: Option<i8> = Some(5);
let sum = x + y; //Error!本质原因是:他俩类型不同
- doc
- src