文章目录
查看rust版本
caibin@caibin-MS-7C82:~/my/rust$ rustc --version
rust一共有三个版本:nightly,beta,还有stable。不稳定特性只在 Nightly Rust 有效
Rust切换到night版本
rustup override set nightly
use
use std::sync::Mutex;
也就是引用了std的sync中的mutex
extern crate
derive
No Rust toolchain configured
No Cargo projects found
只要根目录有cargo.toml点一下attach即可
错误处理
可恢复错误
就是可再次尝试的,一般情况下都是可恢复的,比如打开一个不存在的文件
通过一个Result类型解决,比如一般打开文件都返回的是Result类型的枚举,然后后面用match表达式或者使用unwrap(简单的多)或者使用expect,枚举里面的错误用panic!打印
如果我们想把错误返回给函数调用方,可以使用?的形式,在语句后面加个?即可
不可恢复错误
就是俗称的BUG,通过panic!宏来执行,打印一个错误信息,展开,清理调用栈,退出程序
展开意思是往回走,这样工作量比较大,也可以立即终止调用栈由操作系统清理,需要在cargo.toml设置panic = 'abort’即可
我们在代码里不需要写panic,错误会自动调用的
panic可能出现在我们的代码里,也可能出现在我们依赖的代码里
panic
一般是不可恢复的错误,也就是人为处理
unwrap
其实就是取代result<T,E>和match这种使用方式,如果result是ok,就返回value,否则就panic!