在Rust编程语言中,运算符用于执行某种操作或计算。Rust提供了多种类型的运算符,包括算术运算符、比较运算符、逻辑运算符、位运算符等。下面是一些常见的运算符类型及其用途:
-
算术运算符:用于执行基本的数学运算。
-
+
:加法 -
-
:减法 -
*
:乘法 -
/
:除法 -
%
:取模(求余数)
-
-
比较运算符:用于比较两个值,并返回一个布尔结果(true或者false)。
-
==
:等于 -
!=
:不等于 -
<
:小于 -
>
:大于 -
<=
:小于或等于 -
>=
:大于或等于
-
-
逻辑运算符:用于组合逻辑表达式(主要是对true和false的逻辑组合)。
-
&&
:逻辑与 -
||
:逻辑或 -
!
:逻辑非
-
-
赋值运算符:用于将右侧的值赋给左侧的变量。
-
=
:赋值 -
+=
:加后赋值 -
-=
:减后赋值 -
*=
:乘后赋值 -
/=
:除后赋值 -
%=
:取模后赋值
-
运算符优先级:运算符的优先级决定了它们在表达式中的计算顺序。例如,乘法和除法的优先级高于加法和减法。我的建议是写代码时,利用括号强制优先级,不要去记谁优先。
代码演示
cargo new cs02_calc_sign
修改项目中的main.rs
fn main() {
//算术运算
let x = 5;
let y = 9-x;
let z = 8+y;
let m = 3*z;
let n = m/2;
let p = n%3;
println!("x :{},y :{},z:{} ,m :{},n:{} ,p:{}",x ,y ,z ,m ,n ,p );
//编程除法是很特殊的,与数学不一样
println!("18/4={}",18/4 );//只得整数部分
//%是取余数 18/4=4.....2 所以18%4=2;
println!("18%4={}",18%4 );//只得余数部分
//比较运算符
println!("5>1 {}",5>1 );
println!("5<1 {}",5<1 );
println!("5==1 {}",5==1 );
println!("5!=1 {}",5!=1 );
println!("5>=1 {}",5>=1 );
println!("5<=1 {}",5<=1 );
//逻辑运算
//有一个假, and结果就是假
//有一个真,or结果就是真
println!("T and T {}",true && true );
println!("T and F {}",true && false );
println!("F and F {}",false && false );
println!("T or T {}",true || true );
println!("F or T {}",false || true );
println!("F or F {}",false || false );
println!("not T {}",!true );
println!("not F {}",!false );
let n1 = 85;
println!("{}>50 && {} < 100 is {}",n1,n1, n1>50 && n1<100);
// 赋值运算符
let mut x1 = 5;
x1+=1;
println!("x1 {}",x1 );
x1-=1;
println!("x1 {}",x1 );
x1*=2;
println!("x1 {}",x1 );
x1/=2;
println!("x1 {}",x1 );
x1%=3;
println!("x1 {}",x1 );
}
cargo run
运行结果
x :5,y :4,z:12 ,m :36,n:18 ,p:0
18/4=4
18%4=2
5>1 true
5<1 false
5==1 false
5!=1 true
5>=1 true
5<=1 false
T and T true
T and F false
F and F false
T or T true
F or T true
F or F false
not T false
not F true
85>50 && 85 < 100 is true
x1 6
x1 5
x1 10
x1 5
x1 2