我很难理解 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 计算属性?
答案 0 :(得分:0)
经过几个小时的搜索,我找到了一篇帮助回答我问题的博文:
Swift Sequences and Lazy Evaluation
以下是补充文档,其中涵盖了 GeneratorOf 和 SequenceOf 的更广泛定义: