关系运算符

关系运算符,就是用来进行各种大小比较的运算符号。在数学中我们就经常用到。

关系型运算符表

运算符解析
==相等(值相等判断)
!=不相等
>大于
<小于
>=大于等于
<=小于等于

== 这个运算符,还可以用在其他对象

== 相等运算符核心规则

== 用于判断两个变量 / 对象 代表的值是否相同; 若需要严格判断两个引用是否指向完全同一个内存对象,不能用 ==,要使用专属函数 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)

上面例子,会先算出,关系运算符两边的数学式子,然后再用结果进行比较。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注