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

标签 swift protocols

我很难理解 GeneratorOfSequenceOf 在 Swift 中的工作原理。我尝试查找文档,但他们对此的解释有限或没有。了解这些功能/协议(protocol)的人能否在以下示例中解释它们的工作原理:

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

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

最佳答案

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

Swift Sequences and Lazy Evaluation

这是补充文档,涵盖了 GeneratorOfSequenceOf 的更广泛定义:

Swift Collection Protocols

关于swift - 需要帮助理解 Swift 中的 GeneratorOf 和 SequenceOf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32127517/

相关文章:

ios - UIButton 在隐藏和取消隐藏后中断

java - 在 RFB 协议(protocol)中提交 (x,y) 位置

security - 在不强制重定向到 HTTPS 的情况下启用 HSTS?

swift - 我如何判断哪个守卫声明失败了?

ios - 如何从另一个图像的一部分创建图像?

ios - 核心数据获取请求与 NSFetchedResultsController 一对多关系

ios - 为什么我收到 CIFilter 的 "unrecognized selector sent to class"错误?

使用嵌入式 FPGA 中的 MAC 地址与套接字进行通信

ios - Swift - 委托(delegate) - 如何将协议(protocol)链接到已实现的委托(delegate)方法?

Swift:无法识别泛型的类型协议(protocol)