Rust必知的问题

Rust中的一些细节问题

1. ?操作符
// 由于Rust中没有Exception异常处理的语法,
// Rust只有panic报错, 并且panic不允许被保护, 因为没有提供 try 这种语法.
// Rust的异常处理是通过 Result 的 Ok 和 Err 成员来传递和包裹错误信息.
// 然而错误信息的处理一般都是要通过match来对类型进行比较, 所以很多时候
// 代码比较冗余, 通过?符号来简化Ok和Err的判断.

    pub fn new() -> Result<Self> {
        // Open `/dev/kvm` using `O_CLOEXEC` flag.
        let fd = Self::open_with_cloexec(true)?;
        // Safe because we verify that ret is valid and we own the fd.
        Ok(unsafe { Self::new_with_fd_number(fd) })
    }

参考文献: https://blog.csdn.net/weixin_33953249/article/details/87053779

2. module路径
Rust 提供了 self 和 super 两个关键字:
self关键字
(1)use self::xxx 表示,加载当前模块中的 xxx。此时 self 可省略;
(2)use xxx::{self, yyy},表示,加载当前路径下模块 xxx 本身,以及模块 xxx 下的 yyy;

super关键字
super 表示当前模块路径的上一级路径,可以理解成父模块,比如use super::xxx;

::xxx::yyy
一种特殊路径表示方式,比如::xxx::yyy,表述引用根路径下的 xxx::yyy,这个根路径,指的是当前 crate 的根路径。
路径中的 * 符号:use xxx::*;,表示导入 xxx 模块下的所有可见 item(加了 pub 标识的 item)。

参考文献:https://wiki.jikexueyuan.com/project/rust-primer/module/module.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值