需要帮助理解Swift中的GeneratorOf和SequenceOf

时间:2015-08-20 20:14:31

标签: swift protocols

我很难理解 GeneratorOf SequenceOf 在Swift中是如何工作的。我试着查阅文档,但是对它有限或没有解释。具有这些功能/协议知识的人可以在以下示例中解释它们的工作原理:

enum TaskListRow: Int, Printable {
    case ScaleQuestion = 0
    case NumericQuestion


    /// Returns an array of all the task list row enum cases.
    static var allCases: [TaskListRow] {

        var caseIndex = 0
        let caseGenerator = GeneratorOf { TaskListRow(rawValue: caseIndex++) }


        // Create a sequence that will consume the generator to create an array.
        let caseSequence = SequenceOf(caseGenerator)


        return Array(caseSequence)
    }

    // MARK: Printable
    var description: String {
        switch self {
        case .ScaleQuestion:
            return NSLocalizedString("Scale Question", comment: "")

        case .NumericQuestion:
            return NSLocalizedString("Numeric Question", comment: "")

        }
    }

}


let taskListRows = TaskListRow.allCases
print(taskListRows) //prints list

此外, GeneratorOf SequenceOf 如何调用 description 计算属性?

1 个答案:

答案 0 :(得分:0)

经过几个小时的搜索,我找到了一篇帮助回答我问题的博文:

Swift Sequences and Lazy Evaluation

以下是补充文档,其中涵盖了 GeneratorOf SequenceOf 的更广泛定义:

Swift Collection Protocols