【Rust深入浅出-3】运算符
第一章 Hello World!
第二章 变量和基本数据类型
第三章 运算符
第四章 类型转换
前言
Rust深入浅出教程第三章《常见运算符》
本章节将介绍rust中常用的四类运算符
算术运算符
在rust里,算术运算符对于数字,和其它语言意义一样
不过,rust要求运算符两边的操作数属于同一类型。多数热门语言,如python,Java,C等,都支持运算时的低级类型向高级类型兼容的隐式类型转换,即int+float=float,甚至数字和字符串相加,而这在我们rust中是不存在的,rust对数据类型非常严格
运算符 | 意义 | 示例(a=3,b=2) |
---|---|---|
+ | 相加 | a + b = 1 |
- | 相减 | a - b = 1 |
* | 相乘 | a * b = 6 |
/ | 整除 | a / b = 1 |
% | 取余 | a % b = 1 |
除了数字,其它的数据类型会支持算术运算符吗?
只有一种情况下可以,一个String加上若干&str
此外,其它语言常见的自增(++),自减(- -)以及幂运算(**),rust均不支持
至于rust如何幂运算,数字类型自带pow方法,或者某些实现了大量数学运算的数学库也有
let a: f64 = 2.0;
println!("{}",a.pow(2));
关系运算符
在rust里,关系运算符,和其它语言意义一样
自然的,两边的操作数,应当类型一样
运算符 | 意义 | 示例(a=3,b=2) |
---|---|---|
> | 大于 | a > b = true |
< | 小于 | a < b = false |
>= | 大于等于 | a >= b = true |
<= | 小于等于 | a <= b = false |
== | 等于 | a == b = false |
!= | 不等于 | a != b = true |
逻辑运算符
与其它语言相同,在此不作赘述
运算符 | 意义 | 示例(a=3,b=2) |
---|---|---|
&& | 且 | (a>0 && b>0) |
|| | 或 | (a>0 || b>0) |
! | 非 | !(a>b) |
位运算符
运算符 | 意义 | 示例(a=3,b=2) |
---|---|---|
& | 位与 | a & b = 2 |
| | 位或 | a | b = 3 |
^ | 异或 | a ^ b = 1 |
! | 位非 | !a = -4 |
<< | 左移 | 6 |
>> | 右移 | 1 |
下一章 类型转换