三皇五帝宫

Rust 学习笔记-7 可爱的操作符:健康符

admin    2022-05-25    150

Rust 学习笔记, Rust 教程.

往期回顾.

Rust学习笔记-1 Rust 介绍.

Rust 学习笔记-2 环境安装

Rust学习笔记-2.1 rustup 镜像加速健康符,飞起

Rust 学习笔记-3 Hello World

Rust学习笔记-4 Rust 基础数据类型

Rust 学习笔记-5 变量与常量

Rust 学习笔记-6 有趣的字符串

祝天下老师身体健康

操作符的功能是对数据进行运算.加工. 被运算健康符,加工的数据称为操作数.

运算的方法给个具体的名字就是操作符.也可以叫运算符.

6+8 = 14

6和8是操作数健康符, "+" 号是操作符.

Rust的主要操作符有以下几种:

算术操作符按位操作符关系操作符逻辑操作符算术操作符

就是加减乘除取余. 没什么特别的. 注意的是在其健康符他语言里面的

++健康符, -- 操作,rust 是不支持的.

例子:

fn demo34() { let num1 = 10; let num2 = 2; let mut res: i32; res = num1 + num2; println!("Sum: {} ", res); res = num1 - num2; println!("Difference: {} ", res); res = num1 * num2; println!("Product: {} ", res); res = num1 / num2; println!("Quotient: {} ", res); res = num1 % num2; println!("Remainder: {} ", res);}fn main() { demo34();}cargo run:

算术操作符

比较操作符(关系运算符)关系运算符测试或定义两个实体之间的关系健康符。关系运算符用于比较两个或多个值。关系运算符返回一个布尔值: true或false。

假设A的值是10健康符,B是20

比较操作符如

> 大于 (A > B) is False < 小于 (A < B) is True >= 大于等于 (A >= B) is False 4 <= 小于等于 (A <= B) is True 5 == 等于 (A == B) is false != 不等于 A!=B is true举例:

fn demo35() { let A: i32 = 10; let B: i32 = 20; println!("Value of A:{} ", A); println!("Value of B : {} ", B); let mut res = A > B; println!("A greater than B: {} ", res); res = A < B; println!("A lesser than B: {} ", res); res = A >= B; println!("A greater than or equal to B: {} ", res); res = A <= B; println!("A lesser than or equal to B: {}", res); res = A == B; println!("A is equal to B: {}", res); res = A != B; println!("A is not equal to B: {} ", res);}fn main() { demo35();}cargo run:

逻辑操作符逻辑运算符用于组合两个或多个条件健康符。逻辑运算符也返回布尔值.

这里还是假设 A=10, B=20

&& ( 与) 只在所有操作数都为真 才返回真 (A > 10 && B > 10) is False || (或) 只要有一个操作数为真健康符,就返回真 (A > 10 || B >10) is True ! (非) 取反得结果. 比如: !(>5) 返回 false !(A >10 ) is True例子:

fn demo36() { let a = 20; let b = 30; if (a > 10) && (b > 10) { println!("true"); } let c = 0; let d = 30; if (c > 10) || (d > 10) { println!("true"); } let is_elder = false; if !is_elder { println!("Not Elder"); }}fn main() { demo36();}cargo run:

Finished dev [unoptimized + debuginfo] target(s) in 0.50s Running `target\debug\hello-world.exe`truetrueNot Elder位操作符假如 A = 2 and B = 3.

&(按位与) 它对其整型参数的每一位执行布尔与运算健康符。(a&B)为2 |(按位或) 对其整型参数的每一位执行布尔或运算。(a | B)为3^(按位异或)它对其整型参数的每一位执行布尔异或运算。异或表示操作数一为真或操作数二为真,但不是两者都是真。(A^B)为1!(按位非)它是一元运算符,通过反转操作数中的所有位来操作。(!B) 是 -4<<(左移)将第一个操作数中的所有位向左移动第二个操作数中指定的位数。新位用零填充。将值左移一个位置相当于将其乘以2,移动两个位置相当于乘以4,依此类推。(a<<1)等于4>>(右移)二进制右移运算符。左操作数的值按右操作数指定的位数向右移动。(A>>1)为1>>>(右移零)此运算符与>>运算符相同,只是向左移动的位始终为零。(A>>>1)为1用栗子说话:

fn demo37() { let a: i32 = 2; let b: i32 = 3; let mut result: i32; result = a & b; println!("(a & b) => {} ", result); result = a | b; println!("(a | b) => {} ", result); result = a ^ b; println!("(a ^ b) => {} ", result); result = !b; println!("(!b) => {} ", result); result = a << b; println!("(a << b) => {}", result); result = a >> b; println!("(a >> b) => {}", result);}fn main() { demo37();}cargo run:

操作符重载Rust 允许有限形式的操作符重载健康符。有一些操作符能够被重载。为了支持一个类型之间特定的操作符,有一个你可以实现的特定的特征,然后重载操作符。

例如,可以用 Add 特征重载 + 操作符健康符

//main.rs use std::ops::Add;#[derive(Debug)]struct Point {x: i32,y: i32,}impl Add for Point {type Output = Point;fn add(self, other: Point) -> Point {Point { x: self.x + other.x, y: self.y + other.y }}}fn main() {let p1 = Point { x: 1, y: 0 };let p2 = Point { x: 2, y: 3 };let p3 = p1 + p2;println!("{:?}", p3);}在 main 函数中,你可以在两个 Point之间使用 + 操作符,因为我们可以使用 Point 的方法 Add<Output=Point>健康符

有许多操作符可以以这种方式被重载,所有的关联特征都在 std::ops 模块中健康符

可以查看完整列表的文档.如:

这个运算符重载超出当前学习的范畴健康符,后面再看.

往期回顾:

Rust学习笔记-1 Rust 介绍.

Rust 学习笔记-2 环境安装

Rust学习笔记-2.1 rustup 镜像加速健康符,飞起

Rust 学习笔记-3 Hello World

Rust学习笔记-4 Rust 基础数据类型

Rust 学习笔记-5 变量与常量

Rust 学习笔记-6 有趣的字符串

本文链接:https://35gh.com/post/Rust%20%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-7%20%20%E5%8F%AF%E7%88%B1%E7%9A%84%E6%93%8D%E4%BD%9C%E7%AC%A6%3A%E5%81%A5%E5%BA%B7%E7%AC%A6.html

转载声明:本站发布文章及版权归网上道教,符咒批发,道教符咒,茅山符咒,符咒灵符,手绘符,手绘灵符,道家招财符咒,网上祭奠,网上祭拜,在线许愿网,网上拜财神,代烧香,代烧香祈福,代烧纸钱,招财符咒,婚姻和合符咒,回心转意符咒,桃花符咒,事业符咒,平安符咒,平安健康符咒,求子符咒,怀孕符咒,道教求子咒,求子怀孕符咒,网上道观,线上道观所有,转载本站文章请注明文章来源!

上一篇   下一篇

相关文章