gpt4 book ai didi

快速序列类型返回零

转载 作者:行者123 更新时间:2023-11-28 07:12:43 24 4
gpt4 key购买 nike

我的对象符合SequenceType,所以实现了generate函数。我的对象有一个可选对象,它有一个值数组如果我有一个数组,我通过生成器返回值,但如果没有值,生成器必须返回 nil。我有下面的代码,但它相当冗长。有更好的方法来处理这个问题吗?

func generate() -> GeneratorOf<ValueType> {
if let values = self.data.values
{
var index : Int = 0
return GeneratorOf<ValueType> {
return (index < values.count) ? values[index++] : nil
}
}
//how to improve these lines (or wrap it into the code above?) This feels like repetition.
return GeneratorOf<ValueType> {
return nil
}
}

最佳答案

从您的可选创建一个可选生成器。然后使用可选链接调用next:

func generate() -> GeneratorOf<ValueType> {
var g = data.values?.generate()
return GeneratorOf<ValueType> {
return g?.next()
}
}

如果生成器是nil,它只会在第一次调用时返回nil,否则它会返回values中的所有值.

关于快速序列类型返回零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27742359/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com