关系运算符,就是用来进行各种大小比较的运算符号。在数学中我们就经常用到。
关系型运算符表
| 运算符 | 解析 |
|---|---|
== | 相等(值相等判断) |
!= | 不相等 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
== 这个运算符,还可以用在其他对象
== 相等运算符核心规则
== 用于判断两个变量 / 对象 代表的值是否相同; 若需要严格判断两个引用是否指向完全同一个内存对象,不能用 ==,要使用专属函数 identical()。
空值(null)特殊处理 只要任意一边是 null:
- 两边全为
null返回true - 只有一边是
null返回false
普通对象执行逻辑 等价于调用第一个操作数的 == 方法:x.==(y),运算符本质是操作数上的成员方法。
如下输出都是true null不等于 0 也不等于空字符串“”
void main() {
// 两边都是null,==结果为true
print(null == null); //true
// 一侧null、一侧有值,==结果为false
print(null != 0); //true
print(null != ""); //true
}
Code language: PHP (php)
看一个完整例子
void main() {
// == 相等判断
print(2 == 2);
print("dart" == "dart");
print([1,2] == [1,2]);
// != 不相等判断
print(2 != 3);
print(true != false);
// > 大于
print(3 > 2);
print(10 > -5);
// < 小于
print(2 < 3);
print(-1 < 0);
// >= 大于等于
print(3 >= 3);
print(5 >= 2);
// <= 小于等于
print(2 <= 3);
print(4 <= 4);
}
Code language: Dart (dart)
执行结果
true
true
false
true
true
true
true
true
true
true
true
true
trueCode language: JavaScript (javascript)
== 和 identical() 区别
void main() {
var a = [1, 2];
var b = [1, 2];
// List 的 == 比较对象引用,a、b是两个不同数组,结果为false
print(a == b);
// identical 判断是否为同一个内存对象,a、b是两个不同数组,返回false
print(identical(a, b));
// c直接引用a,指向同一对象,identical返回true
var c = a;
print(identical(a, c));
}
Code language: PHP (php)
补充:如果要比较两个list的内容,要使用listEquals
import 'package:flutter/foundation.dart';
listEquals(a, b); // true,对比数组每一个元素Code language: JavaScript (javascript)
字符串的比较
字符串比较 只可以用 == 和 !=
void main() {
// 字符串关系/相等运算
print("apple" != "banana"); //true
print("apple" == "apple"); //true
//print("zoo" > "apple"); // 报错,字符串不可以用 > < >= <= ,只能用 == != 判断相等
// 布尔值相等判断
print(true == true); //true
print(true != false); //true
}
Code language: PHP (php)
关系运算符结合算术运算符
根据前面的课程,我们可以知道;算术运算 > 关系运算,会先算加减乘除,再做大小、相等判断;
void main() {
// 先计算左右两边算术式,再比较
print(10 + 5 == 3 * 5); // 15 == 15 → true
print(20 - 3 != 8 + 9); // 17 != 17 → false
print(12 + 4 > 5 + 6); // 16 > 11 → true
print(9 - 7 < 10 - 1); // 2 < 9 → true
print(6 + 2 >= 4 * 2); // 8 >= 8 → true
print(15 - 8 <= 3 + 5); // 7 <= 8 → true
}Code language: PHP (php)
上面例子,会先算出,关系运算符两边的数学式子,然后再用结果进行比较。
Previous: Dart 算术运算符
Next: Dart 类型测试运算符