Option<T>
像C#的nullable,就是使没有支持null(None)的数据类型增加null(None)这个取值,要用Some(x)进行解包
变量所有权
一个变量只能拥有一个可写的引用,但是可以拥有多个只读引用,读与写引用互斥.
栈上变量直接赋值,会直接复制,不会转移所有权.但是堆上变量赋值如果没有使用clone(),则会转移所有权,转移后原来变量名失去所有权,使用的话会在编译阶段报错
函数如果没有传引用的话,会把所有权转移到被调用函数中
生命周期
1 | // 表示a,b和返回值有相同的生命周期 |
静态生命周期
1 | let s: &'static str = "455"; |
trait
很像接口
1 | pub trait Ahh { |