Rust操作符和符号全解析

Rust是一种系统编程语言,它的语法丰富而严谨,包括了一系列的操作符和符号。这些操作符和符号是构建Rust程序的基本元素,它们用于执行各种操作,如算术运算、逻辑比较、类型约束等。本文将详细介绍Rust中的操作符和符号,以及它们在代码中的使用方式。

Rust操作符

Rust中的操作符可以分为以下几类:

算术操作符

  • +:加法,例如expr + expr
  • -:减法,例如expr - expr
  • *:乘法,例如expr * expr
  • /:除法,例如expr / expr
  • %:取余,例如expr % expr

这些操作符都支持重载,对应的特质(trait)分别是AddSubMulDivRem

赋值操作符

  • =:赋值,例如var = expr
  • +=:加法赋值,例如var += expr
  • -=:减法赋值,例如var -= expr
  • *=:乘法赋值,例如var *= expr
  • /=:除法赋值,例如var /= expr
  • %=:取余赋值,例如var %= expr

比较操作符

  • ==:相等比较,例如expr == expr
  • !=:不等比较,例如expr != expr
  • <:小于比较,例如expr < expr
  • <=:小于等于比较,例如expr <= expr
  • >:大于比较,例如expr > expr
  • >=:大于等于比较,例如expr >= expr

这些操作符都支持重载,对应的特质是PartialEqPartialOrd

逻辑操作符

  • &&:逻辑与,例如expr && expr
  • ||:逻辑或,例如expr || expr
  • !:逻辑非,例如!expr

位操作符

  • &:位与,例如expr & expr
  • |:位或,例如expr | expr
  • ^:位异或,例如expr ^ expr
  • ~:位非,例如!expr
  • <<:左移,例如expr << expr
  • >>:右移,例如expr >> expr

这些操作符也支持重载,对应的特质是BitAndBitOrBitXorShlShr

解引用操作符

  • *:解引用,例如*expr

范围操作符

  • ..:右排他性范围,例如..expr....expr
  • ..=:右包含性范围,例如..=exprexpr..=expr

模式匹配操作符

  • @:模式绑定,例如ident @ pat

宏和属性操作符

  • !:宏展开,例如ident!(...)ident!{...}ident![..]
  • #:属性,例如#[meta]

非操作符符号

除了操作符,Rust中还有一些独立的符号,它们在代码中扮演着重要的角色:

生命周期和路径相关符号

  • 'ident:命名生命周期或循环标签。
  • ::path:相对于crate根的路径。
  • self::path:相对于当前模块的路径。
  • super::path:相对于当前模块父模块的路径。

泛型和trait约束符号

  • <...>:泛型参数,例如Vec<u8>
  • T: U:泛型参数T约束为实现U的类型。
  • T: 'a:泛型类型T必须比生命周期'a长。

宏和属性

  • #[meta]:外部属性。
  • #![meta]:内部属性。

注释符号

  • //:行注释。
  • ///:外部行文档注释。
  • /*...*/:块注释。

元组和花括号

  • ():空元组(单位元组)。
  • {...}:代码块表达式或结构体字面量。

方括号

  • []:数组字面量或集合索引。
  • [expr; len]:包含len个expr的数组字面量。

通过这些操作符和符号,Rust提供了强大的表达能力,使得程序员能够以精确和高效的方式编写系统级代码。掌握这些操作符和符号的用法,是成为一名Rust程序员的基础。

相关推荐
Anna_Tong34 分钟前
ASP.NET Core 与 Blazor:现代 Web 开发技术的全新视角
前端·后端·微软·asp.net·web·技术
互联网动态分析37 分钟前
PHP:构建动态网站的后端基石
开发语言·php
Source.Liu2 小时前
【数值特性库】入口文件
rust·num-traits
SomeB1oody2 小时前
【Rust自学】3.5. 控制流:if else
开发语言·后端·rust
Java Fans4 小时前
构建树莓派温湿度监测系统:从硬件到软件的完整指南
java·后端·struts
Q之路4 小时前
C++之多态
开发语言·c++
旷野..5 小时前
Python构造方法:对象的“开机启动程序”
开发语言·python
觅远5 小时前
python实现Excel转图片
开发语言·python·excel