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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
2016-08-24 使用rem缩放网页的javascript代码