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

Dart 语法

1. 级联操作符 …

var paint =Paint()..color = Colors.black..strokeCap = StrokeCap.round..strokeWidth = 5.0;

2. firstWhereOrNull

3. 隐藏或导入部分组件

// Import only foo.
import 'package:lib1/lib1.dart' show foo;// Import all names EXCEPT foo.
import 'package:lib2/lib2.dart' hide foo;

3. 单个 Case 模式 可以实现相同的验证。 单个 case 最适合作为 if-case 语句。模式提供了一种更具声明性且不那么冗长的 JSON 验证方法:

if (data case {'user': [String name, int age]}) {print('User $name is $age years old.');
}

data case {‘user’: [String name, int age]}:这是一个模式匹配表达式。
data 是要匹配的对象。
case 关键字用于指定模式。
{‘user’: [String name, int age]} 是一个模式,表示 data 必须是一个 Map,并且包含一个键为 ‘user’ 的条目,其值是一个包含两个元素的列表,第一个元素是 String 类型,第二个元素是 int 类型。
String name 和 int age 是变量声明,用于捕获匹配到的值。
如果 data 符合这个模式,name 和 age 会被赋值为对应的值,并且 if 块中的代码会被执行。
参考链接:https://dart.cn/language/patterns/

4. 函数 Tear-off

void printCharCode(int code) {print(String.fromCharCode(code));
}void main() {var charCodes = [68, 97, 114, 116];// 函数 Tear-offcharCodes.forEach(printCharCode);
}

在这个例子中,printCharCode 是一个函数。通过 charCodes.forEach(printCharCode),我们直接将 printCharCode 传递给 forEach,而不需要写成 charCodes.forEach((code) => printCharCode(code))。

5. 生成器

yield:用于在生成器函数中逐个返回值。
yield*:用于委托生成器的执行,避免嵌套调用的开销。
同步生成器:返回一个 Iterable 对象,使用 sync* 标记。
异步生成器:返回一个 Stream 对象,使用 async* 标记。


http://www.mrgr.cn/news/97408.html

相关文章:

  • 字符串-JS
  • 项目总结之常问的一些问题
  • uniapp如何接入星火大模型
  • Java面试34-Kafka的零拷贝原理
  • 国产芯片解析:龙讯USB Type-C/DP Transmitter多场景覆盖,定义高速互联新标杆
  • Java面试32-对Spring Cloud的理解
  • LeetCode 热题 100 堆
  • 从零搭建微服务项目Pro(第7-1章——分布式雪花算法)
  • 1. Qt信号与槽
  • C语言跳表(Skip List)算法(附链表与跳表实现源码)
  • 从奖励到最优决策:动作价值函数与价值学习
  • Opencv之dilib库:表情识别
  • 人大金仓数据库dum文件进行备份数据和恢复数据
  • 使用OpenSceneGraph生成3D数据格式文件
  • 某碰瓷国赛美赛,号称第三赛事的数模竞赛
  • HarmonyOS 基础组件和基础布局的介绍
  • LeetCode Hot100 刷题笔记(3)—— 链表
  • spring boot 整合redis
  • MySQL窗口函数学习
  • AI爬虫?爬!