当前位置: 首页 > news >正文

Flutter Dart 运算符全面解析

引言

在 Dart 语言中,运算符是用于执行各种操作的特殊符号。这些操作可以是算术运算、逻辑运算、比较运算等。了解并熟练运用这些运算符是进行 Flutter 开发的基础。本文将详细介绍 Dart 中常见的运算符,并结合代码示例进行说明。

1. 算术运算符

算术运算符用于执行基本的数学运算,如加法、减法、乘法、除法等。

代码示例

void main() {
  // 定义两个整数变量
  int a = 10;
  int b = 3;

  // 加法
  int sum = a + b;
  print('加法结果: $sum');

  // 减法
  int difference = a - b;
  print('减法结果: $difference');

  // 乘法
  int product = a * b;
  print('乘法结果: $product');

  // 除法
  double quotient = a / b;
  print('除法结果: $quotient');

  // 取整除法
  int integerQuotient = a ~/ b;
  print('取整除法结果: $integerQuotient');

  // 取余
  int remainder = a % b;
  print('取余结果: $remainder');
}

代码解释

  • +:加法运算符,用于计算两个数的和。
  • -:减法运算符,用于计算两个数的差。
  • *:乘法运算符,用于计算两个数的积。
  • /:除法运算符,返回一个 double 类型的结果。
  • ~/:取整除法运算符,返回一个 int 类型的结果,即商的整数部分。
  • %:取余运算符,返回除法运算的余数。

2. 比较运算符

比较运算符用于比较两个值的大小关系,返回一个布尔值(truefalse)。

代码示例

void main() {
  int x = 5;
  int y = 10;

  // 等于
  bool isEqual = x == y;
  print('x 是否等于 y: $isEqual');

  // 不等于
  bool isNotEqual = x != y;
  print('x 是否不等于 y: $isNotEqual');

  // 大于
  bool isGreater = x > y;
  print('x 是否大于 y: $isGreater');

  // 小于
  bool isLess = x < y;
  print('x 是否小于 y: $isLess');

  // 大于等于
  bool isGreaterOrEqual = x >= y;
  print('x 是否大于等于 y: $isGreaterOrEqual');

  // 小于等于
  bool isLessOrEqual = x <= y;
  print('x 是否小于等于 y: $isLessOrEqual');
}

代码解释

  • ==:等于运算符,判断两个值是否相等。
  • !=:不等于运算符,判断两个值是否不相等。
  • >:大于运算符,判断左边的值是否大于右边的值。
  • <:小于运算符,判断左边的值是否小于右边的值。
  • >=:大于等于运算符,判断左边的值是否大于或等于右边的值。
  • <=:小于等于运算符,判断左边的值是否小于或等于右边的值。

3. 逻辑运算符

逻辑运算符用于组合多个布尔表达式,返回一个布尔值。

代码示例

void main() {
  bool condition1 = true;
  bool condition2 = false;

  // 逻辑与
  bool andResult = condition1 && condition2;
  print('逻辑与结果: $andResult');

  // 逻辑或
  bool orResult = condition1 || condition2;
  print('逻辑或结果: $orResult');

  // 逻辑非
  bool notResult = !condition1;
  print('逻辑非结果: $notResult');
}

代码解释

  • &&:逻辑与运算符,只有当两个操作数都为 true 时,结果才为 true
  • ||:逻辑或运算符,只要有一个操作数为 true,结果就为 true
  • !:逻辑非运算符,用于取反操作,将 true 变为 false,将 false 变为 true

4. 赋值运算符

赋值运算符用于将一个值赋给一个变量。

代码示例

void main() {
  int num = 10; // 基本赋值
  print('初始值: $num');

  // 加法赋值
  num += 5;
  print('加法赋值后的值: $num');

  // 减法赋值
  num -= 3;
  print('减法赋值后的值: $num');

  // 乘法赋值
  num *= 2;
  print('乘法赋值后的值: $num');

  // 除法赋值
  num /= 4;
  print('除法赋值后的值: $num');

  // 取整除法赋值
  num = 20; // 重置 num 的值
  num ~/= 3;
  print('取整除法赋值后的值: $num');

  // 取余赋值
  num %= 2;
  print('取余赋值后的值: $num');
}

代码解释

  • =:基本赋值运算符,将右边的值赋给左边的变量。
  • +=:加法赋值运算符,将变量的值加上指定的值,并将结果赋给变量。
  • -=:减法赋值运算符,将变量的值减去指定的值,并将结果赋给变量。
  • *=:乘法赋值运算符,将变量的值乘以指定的值,并将结果赋给变量。
  • /=:除法赋值运算符,将变量的值除以指定的值,并将结果赋给变量。
  • ~/=:取整除法赋值运算符,将变量的值除以指定的值,取整后将结果赋给变量。
  • %=:取余赋值运算符,将变量的值除以指定的值,取余后将结果赋给变量。

5. 位运算符

位运算符用于对整数的二进制位进行操作。

代码示例

void main() {
  int num1 = 5; // 二进制表示: 0101
  int num2 = 3; // 二进制表示: 0011

  // 按位与
  int andResult = num1 & num2;
  print('按位与结果: $andResult');

  // 按位或
  int orResult = num1 | num2;
  print('按位或结果: $orResult');

  // 按位异或
  int xorResult = num1 ^ num2;
  print('按位异或结果: $xorResult');

  // 按位取反
  int notResult = ~num1;
  print('按位取反结果: $notResult');

  // 左移
  int leftShiftResult = num1 << 2;
  print('左移结果: $leftShiftResult');

  // 右移
  int rightShiftResult = num1 >> 1;
  print('右移结果: $rightShiftResult');
}

代码解释

  • &:按位与运算符,对两个操作数的对应二进制位进行与运算。
  • |:按位或运算符,对两个操作数的对应二进制位进行或运算。
  • ^:按位异或运算符,对两个操作数的对应二进制位进行异或运算。
  • ~:按位取反运算符,对操作数的每一个二进制位取反。
  • <<:左移运算符,将操作数的二进制位向左移动指定的位数。
  • >>:右移运算符,将操作数的二进制位向右移动指定的位数。

6. 条件运算符

条件运算符(三元运算符)是一种简洁的条件判断语句,用于根据条件的真假返回不同的值。

代码示例

void main() {
  int score = 80;
  String result = score >= 60 ? '及格' : '不及格';
  print('考试结果: $result');
}

代码解释

条件运算符的语法为 condition ? value1 : value2。如果 conditiontrue,则返回 value1;否则返回 value2

7. 级联运算符

级联运算符(..)允许你在同一个对象上连续调用多个方法或访问多个属性。

代码示例

class Person {
  String name;
  int age;

  Person(this.name, this.age);

  void introduce() {
    print('我叫 $name,今年 $age 岁。');
  }

  void celebrateBirthday() {
    age++;
    print('生日快乐!我现在 $age 岁了。');
  }
}

void main() {
  Person person = Person('张三', 20);
  person
    ..introduce()
    ..celebrateBirthday();
}

代码解释

级联运算符允许你在不重复引用对象的情况下,连续调用对象的方法或访问对象的属性,使代码更加简洁。

总结

本文详细介绍了 Dart 中常见的运算符,包括算术运算符、比较运算符、逻辑运算符、赋值运算符、位运算符、条件运算符和级联运算符,并结合代码示例进行了说明。熟练掌握这些运算符对于进行 Flutter 开发至关重要,希望本文能帮助你更好地理解和运用 Dart 运算符。

相关文章:

  • ⭐算法OJ⭐汉明距离【位操作】(C++ 实现)Hamming Distance
  • 如何解决Redis的缓存雪崩、缓存击穿、缓存穿透?
  • 前端UI编程基础知识:基础三要素(结构→表现→行为)
  • CNN-BiLSTM、BiLSTM、CNN多变量时间序列光伏功率预测Matlab
  • SpringCloud一些基础概念(自用扫盲)
  • Pytest自动化测试框架pytest-xdist分布式测试插件
  • 医院HIS系统的安全解决方案
  • 医药制造行业现状 医药制造行业内检实验室LIMS
  • 蓝桥杯备考:set容器用法(lower_bound)---营业额统计
  • 30、Vuex 为啥可以进行缓存处理
  • ES6回顾:闭包->(优点:实现工厂函数、记忆化和异步实现)、(应用场景:Promise的then与catch的回调、async/await、柯里化函数)
  • 二进制求和(js实现,LeetCode:67)
  • 如何在宝塔mysql修改掉3306端口
  • 数据库系统概念全面解析
  • 【从零开始学习计算机科学】数据库系统(五)DBMS查询处理
  • 高德爬取瓦片和vue2使用
  • 【ubuntu】——wsl中使用windows中的adb
  • 深度学习项目--基于DenseNet网络的“乳腺癌图像识别”,准确率90%+,pytorch复现
  • Spring Boot 3.3.4 升级导致 Logback 之前回滚策略配置不兼容问题解决
  • Spring Boot(十六):使用 Jenkins 部署 Spring Boot
  • 悬疑剧背后的女编剧:创作的差异不在性别,而在经验
  • 王东杰评《国家与学术》︱不“国”不“故”的“国学”
  • 李成钢出席中国与《数字经济伙伴关系协定》成员部级会议
  • 我国城市规划“全面体检”套餐出台,城市体检将逐步与供地计划等挂钩
  • 广西等地旱情缓解,水利部针对甘肃启动干旱防御Ⅳ级响应
  • 钕铁硼永磁材料龙头瞄准人形机器人,正海磁材:已向下游客户完成小批量供货