Dart 中的生成器

简介: Dart 中的生成器允许用户轻松生成值序列。可以借助两个生成器函数在 dart 中生成一系列值:同步生成器:返回一个可迭代对象。异步生成器:返回一个Stream对象。

Dart 中的生成器允许用户轻松生成值序列。可以借助两个生成器函数在 dart 中生成一系列值:

  1. 同步生成器:返回一个可迭代对象。
  2. 异步生成器:返回一个Stream对象。

Dart 中的同步生成器

同步生成器返回一个可迭代对象,即它返回可以顺序访问的值或“元素”的集合。要实现同步生成器功能,请将函数体标记为sync* ,并使用yield 语句传递值。

示例: 在 Dart 中实现同步生成器。

// sync* functions return an iterable
Iterable geeksForGeeks(int number) sync* {
int geek = number;
while (geek >= 0) {
    // Checking for even number
    if (geek % 2 == 0) {
    // 'yield' suspends
    // the function
    yield geek;
    }
    // Decreasing the
    // variable geek
    geek--;
}
}
// Main Function
void main()
{
print("------- Geeks For Geeks --------");
print("Dart Synchronous Generator Example For Printing Even Numbers From 10 In
        Reverse Order:");
// Printing positive even numbers
// from 10 in reverse order
geeksForGeeks(10).forEach(print);
}
复制代码

Dart 中的异步生成器

异步生成器返回一个流对象。Stream 提供了一种接收一系列事件的方法。每个事件要么是一个数据事件,也称为流的一个元素,要么是一个错误事件,它是某事失败的通知。要实现异步生成器函数,请将函数体标记为async* ,并使用yield 语句传递值。

示例: 在 Dart 中实现异步生成器。

// async* function(s) return an stream
Stream geeksForGeeks(int number) async* {
int geek = 0;
// Checking for every
// geek less than number
while (geek <= number) yield geek++;
// Incrementing geek
// after printing it
}
// Main Function
void main()
{
print("-------- Geeks For Geeks -----------");
print("Dart Asynchronous Generator Example For Printing Numbers Less Than 10:");
// Printing numbers less
// than or equal to 10
geeksForGeeks(10).forEach(print);
}
复制代码
-------- Geeks For Geeks -----------
Dart Asynchronous Generator Example For Printing Numbers Less Than 10:
0
1
2
3
4
5
6
7
8
9
10



相关文章
N..
|
6月前
|
Dart
Dart语言中类的定义和使用
Dart语言中类的定义和使用
N..
64 0
|
6月前
|
设计模式 Dart
生成器(构建器)模式-原理到实战应用(Dart版)
生成器(构建器)模式-原理到实战应用(Dart版)
86 0
|
6月前
|
Dart 数据安全/隐私保护
Dart笔记:Dart 语言中的存取器及其用法解析
Dart笔记:Dart 语言中的存取器及其用法解析
79 0
|
Dart
[Flutter]足够入门的Dart语言系列之函数:函数定义、调用、5种参数类型和main函数
函数(Function)也被称为方法(Method)。其最直观的理解就是数据中的函数,比如y=f(x),在编程中,f对输入x进行处理,返回结果y,就是一个函数......
1034 0
[Flutter]足够入门的Dart语言系列之函数:函数定义、调用、5种参数类型和main函数
|
5月前
|
JavaScript
28.【TypeScript 教程】生成器(Generator)
28.【TypeScript 教程】生成器(Generator)
79 3
N..
|
6月前
|
自然语言处理 Dart 算法
Dart语言中函数的定义
Dart语言中函数的定义
N..
47 0
|
Python
【Python】创建生成器generator
【Python】创建生成器generator
60 0
Dart语法糖快速理解学习
Dart语法糖是指Dart编程语言中的一些便捷的语法结构,它们可以使代码更加简洁易懂。以下是几个常见的Dart语法糖及其示例代码
Dart语法糖快速理解学习
|
Dart Java Kotlin
那些你不知道的Dart细节之函数(方法)(三)
Dart中的函数,也就是方法
132 0
|
Dart
Dart之 方法定义
Dart之 方法定义
107 0
Dart之 方法定义