zoukankan      html  css  js  c++  java
  • rust 的奇葩点(.和..)语法小记

    1      (.)点运算符

    看到类似语句:  let s = "12345".split_terminator("").0;

      编译器提示:error[E0616]: field `0` of struct `SplitTerminator` is private

    原来被最后那个0给迷惑了,这个点就是 成员访问 运算符

    2    (..)两个点运算符

    2.1例:    let s = 1..5;    for i in s{ println!("{:?}", i);  }

    叫做 右排除范围 运算符   。类似还有   ..=

    2.2例:let employee2 = Employee{ employee_name : String::from("Yiibai"), employee_id: 11, ..employee1 };

    叫做  结构体更新语法   意思是把 employee1的字段和值都导入到 employee2中。

    2.3 例 :
    struct Person<'a>{   
             age: u8,
             name: &'a str,
             grade:u8,
    }
    fn main() {   
        let person = Person { age: 15, name: &"chen",grade:1};
        if let
         Person {        
             age: person_age @ 13..=19,  
             name:person_name,    
             ..
         } = person
     {
         println!("{} is {} years old.", person_name, person_name);
     }
    }

    代码中有两处(..),后一个应该叫做 “与剩余部分”的模式绑定吧。还有代码中那个 @ 叫模式绑定(ident @ pat)

    还有三个点(...)语法 说是废弃了( deprecated)

      其他的参考官方文档参考:https://kaisery.github.io/trpl-zh-cn/appendix-02-operators.html

    另,参考https://zhuanlan.zhihu.com/p/126369292

  • 相关阅读:
    C和指针学习笔记--第五章
    C和指针学习笔记--第四章
    C和指针学习笔记--第三章
    ipables常用命令
    linux网络设计与实现-----第一章
    iptables
    cJSON学习
    Makefile-更新函数库文件
    Makefile隐晦规则
    【Spark学习笔记】01-Spark简介
  • 原文地址:https://www.cnblogs.com/pu369/p/15181567.html
Copyright © 2011-2022 走看看