Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
swift sequenceType返回零_Swift_Sequence - Fatal编程技术网

swift sequenceType返回零

swift sequenceType返回零,swift,sequence,Swift,Sequence,我的对象符合SequenceType,因此它实现了generate函数。 我的对象有一个可选对象,它有一个值数组 如果我有一个数组,我通过生成器返回值,但是如果没有值,生成器必须返回nil。我有下面的代码可以工作,但它相当冗长。有没有更好的方法来处理这个问题 func generate() -> GeneratorOf<ValueType> { if let values = self.data.values { var index : Int

我的对象符合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
    }
}
func generate()->GeneratorOf{
如果let values=self.data.values
{
var指数:Int=0
返回发生器{
返回(索引
从可选的
值创建可选的生成器。然后使用可选链接调用
next

func generate() -> GeneratorOf<ValueType> {
    var g = data.values?.generate()
    return GeneratorOf<ValueType> {
        return g?.next()
    }
}
func generate()->GeneratorOf{
var g=data.values?.generate()
返回发生器{
返回g?.next()
}
}
如果生成器为
nil
,它将在第一次调用时返回
nil
,否则它将返回
值中的所有值