相关疑难解决方法(0)

Swift 3中最小的工作IteratorProtocol/Sequence

我发现在Swift 3中使用Sequence/IteratorProtocol找到"工作文档"非常困难.有些教程/文章似乎适用于较旧的Swift.

想象一下玩具双重链表名单DLList......

public class Node
    {
    // whatever "thing" you have a group of, this is that "thing"
    }
public class DLList
    {
    // toy linked list class here
    // so this is a group of "node" in this example
    }
Run Code Online (Sandbox Code Playgroud)

我相信以下代表了最简单(?),正确的方法,使其可以,一句话,用DLList在一个for结构.

第1步,让你的DLList符合DLList:Sequence

public class DLList:Sequence
    {
    // toy linked list class here

    public func makeIterator() -> DLListIterator
        {
        return DLListIterator(self)
        }
    }
Run Code Online (Sandbox Code Playgroud)

似乎你所要做的就是添加makeIterator呼叫.

第2步,编写你的迭代器,符合 IteratorProtocol

由于该类是DLList,我们将其称为DLListIterator.看起来似乎是这样

1,你必须有一个"init",基本上是有问题的组类

2,你必须有一个next电话,它必须返回一个与你的小组类神奇相关的"事物". …

iterator sequence swift3

8
推荐指数
2
解决办法
2606
查看次数

标签 统计

iterator ×1

sequence ×1

swift3 ×1