本文中,小编将讨论什么是生成器,并把它与协程进行比较。但要理解这两个概念(用协程生成的生成器),小编首先需要深入了解迭代器的概念。函数最常见的用途是创建迭代器,但是它的基本特性是可以暂停计算,返回中间结果,然后在某一时刻恢复计算。也就是说生成器具有超越迭代器的特性,下面几个部分将讨论这些特性。
协作程序如何工作?
请注意上面的代码示例,您将发现一个协程函数的返回值,这是一个迭代器,您可以将其作为指向序列中某一节点的指针,它提供了返回当前指向的元素和将指针向前移动一个单位,如果移动成功,则返回两个重要接口,因此您不必担心具体的实现。
一般情况下,如果要实现接口,可以编写类、实现成员等,块是一种实现的简便方法,只需遵守一些规则,并由编译器自动生成。
迭代块具有以下特征:
1. 返回IEnumerator
2. 使用yield关键字
那么它的关键词是什么呢?该函数声明序列中的下一个值或无意义值,若使用特定的对象或数值,则返回为true,而函数被赋为x,若使用则返回。
下面我举了一个迭代器的例子:
协同程序如何实现延迟?
您可以看到,返回的值不一定有意义,但我们对如何使用该返回值实现一些有趣的效果更感兴趣。
宣布作为所有返回值的基本类别,提供一些常见的继承类别,如暂停一段时间的持续执行,并将继续执行到下一帧等。更精致的是,它也可以返回函数的真实身体,即当a自己返回b时,即在b完成后执行a。以下是详细说明:
还有更有趣的呢?
1. 首先,可以返回任意,因此我们可以在此添加一些条件判断:
2. 其次,因为协程仅仅是一个迭代器块,所以您也可以通过它来完成,这在某些情况下非常有用,比如在协程是否执行条件判断时:
3. 因为协程可以协程,所以我们可以自己制作协程函数:
所以结合上面案例看出,函数体不会立即被调用,但是它会返回一个可迭代的迭代器对象。每当这个迭代器的方法被调用时,生成器函数中的代码块就会运行。
>>>>>>点击进入游戏开发专题
下一篇:人工智能如何优化策略游戏?
¥108.00
¥698.00
¥98.00
¥98.00