zoukankan      html  css  js  c++  java
  • rust 学习之旅二,关键字和保留字

    当前,以下关键字具有所描述的功能。

    as-执行原始类型转换,消除包含项目的特定特征的歧义,或在useand extern crate语句中重命名项目
    async-返回a Future而不是阻塞当前线程
    await-暂停执行直到a的结果Future准备好
    break -立即退出循环
    const -定义常量项目或常量原始指针
    continue -继续进行下一个循环迭代
    crate -链接一个外部板条箱或一个宏变量,该变量代表定义宏的板条箱
    dyn -动态分配给特征对象
    else-回退if并if let控制流程构造
    enum -定义一个枚举
    extern -链接外部板条箱,函数或变量
    false -布尔型假文字
    fn -定义函数或函数指针类型
    for -循环遍历迭代器中的项目,实现特征或指定更高级别的生存期
    if -根据条件表达式的结果进行分支
    impl -实现固有或特征功能
    in- for循环语法的一部分
    let -绑定变量
    loop -无条件循环
    match -将值匹配到模式
    mod -定义一个模块
    move -使封包对其所有捕获物拥有所有权
    mut -表示引用,原始指针或模式绑定中的可变性
    pub-表示结构字段,impl块或模块中的公共可见性
    ref -通过引用绑定
    return -从函数返回
    Self -我们正在定义或实现的类型的类型别名
    self -方法主题或当前模块
    static -持续整个程序执行的全局变量或生命周期
    struct -定义一个结构
    super -当前模块的父模块
    trait -定义一个特征
    true -布尔值真实文字
    type -定义类型别名或关联的类型
    unsafe -表示不安全的代码,功能,特征或实现
    use -将符号纳入范围
    where -表示约束类型的子句
    while -根据表达式的结果有条件地循环
    保留以备将来使用的关键字
    以下关键字没有任何功能,但被Rust保留,以备将来使用。

    abstract
    become
    box
    do
    final
    macro
    override
    priv
    try
    typeof
    unsized
    virtual
    yield
    原始标识符
    原始标识符是一种语法,可让您在通常不允许使用的关键字中使用关键字。您可以通过在关键字前面加上来使用原始标识符r#。

    例如,match是一个关键字。如果尝试编译使用以下函数match作为其名称的函数:

    文件名:src / main.rs


    fn match(needle: &str, haystack: &str) -> bool {
    haystack.contains(needle)
    }
    您将收到此错误:


    error: expected identifier, found keyword `match`
    --> src/main.rs:4:4
    |
    4 | fn match(needle: &str, haystack: &str) -> bool {
    | ^^^^^ expected identifier, found keyword
    该错误表明您不能将关键字match用作功能标识符。要将其match用作函数名,您需要使用原始标识符语法,如下所示:

    文件名:src / main.rs


    fn r#match(needle: &str, haystack: &str) -> bool {
    haystack.contains(needle)
    }

    fn main() {
    assert!(r#match("foo", "foobar"));
    }
    此代码将编译而没有任何错误。请注意r#函数名称在其定义中的前缀以及在中调用该函数的位置main。

    原始标识符允许您使用选择的任何单词作为标识符,即使该单词恰好是保留关键字。另外,原始标识符使您可以使用以与包装箱不同的Rust版本编写的库。例如,try不是2015年版的关键字,而是2018年版的关键字。如果您依赖使用2015版编写的并且具有try功能的库,则r#try在这种情况下,需要使用原始标识符语法从2018版代码中调用该函数

  • 相关阅读:
    QT:浮动的饼状统计图(自绘不规则窗口)
    在QTableView中使用各种自定义委托
    QT:使用“状态模式”绘制界面
    Linux IO控制命令生成
    C++ new和delete实现原理——new和delete最终调用malloc和free
    Qt中如何 编写插件 加载插件 卸载插件
    QT:用QSet储存自定义结构体的问题——QSet和STL的set是有本质区别的,QSet是基于哈希算法的,要求提供自定义==和qHash函数
    两种方法:VS2008下C++窗体程序显示控制台的方法——在QT程序中使用cout和cin
    把自定义控件集成到Qt Designer中
    关闭Windows 2008下面应用程序出错后的提示
  • 原文地址:https://www.cnblogs.com/dzqdzq/p/12865895.html
Copyright © 2011-2022 走看看