Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.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中迭代器协议与生成器与迭代器_Swift_Iterator_Generator - Fatal编程技术网

swift中迭代器协议与生成器与迭代器

swift中迭代器协议与生成器与迭代器,swift,iterator,generator,Swift,Iterator,Generator,在做了一些研究之后,我还并没有找到任何具体的证实,但似乎序列协议的生成器关联类型已经重命名为迭代器。这是正确的吗 我在swift API参考中找不到任何关于协议生成器类型或关联类型生成器的信息。我只看到人们在博客上写这件事 所以我的问题是,生成器和迭代器在swift中是否引用了完全相同的概念 生成器和迭代器在Swift中引用的概念是否完全相同 一言以蔽之;对 如标准库Swift 3“重命名”中所述: 从协议名称中去掉类型后缀。在一些特殊情况下,这意味着添加一个协议后缀,以避开主要[…]类型名

在做了一些研究之后,我还并没有找到任何具体的证实,但似乎序列协议的生成器关联类型已经重命名为迭代器。这是正确的吗

我在swift API参考中找不到任何关于协议生成器类型或关联类型生成器的信息。我只看到人们在博客上写这件事

所以我的问题是,生成器和迭代器在swift中是否引用了完全相同的概念

生成器和迭代器在Swift中引用的概念是否完全相同


一言以蔽之;对

如标准库Swift 3“重命名”中所述:

  • 从协议名称中去掉
    类型
    后缀。在一些特殊情况下,这意味着添加一个
    协议
    后缀,以避开主要[…]类型名

  • 生成器的概念在所有API中都重命名为迭代器

因此,该协议已重命名为

该协议被重命名为,并从如下所示:

public protocol SequenceType {

  associatedtype Generator : GeneratorType

  // ...
  func generate() -> Generator
  // ...
}
public protocol Sequence {

  associatedtype Iterator : IteratorProtocol

  // ...
  func makeIterator() -> Iterator
  // ...
}
看起来像这样:

public protocol SequenceType {

  associatedtype Generator : GeneratorType

  // ...
  func generate() -> Generator
  // ...
}
public protocol Sequence {

  associatedtype Iterator : IteratorProtocol

  // ...
  func makeIterator() -> Iterator
  // ...
}
生成器和迭代器在Swift中引用的概念是否完全相同


一言以蔽之;对

如标准库Swift 3“重命名”中所述:

  • 从协议名称中去掉
    类型
    后缀。在一些特殊情况下,这意味着添加一个
    协议
    后缀,以避开主要[…]类型名

  • 生成器的概念在所有API中都重命名为迭代器

因此,该协议已重命名为

该协议被重命名为,并从如下所示:

public protocol SequenceType {

  associatedtype Generator : GeneratorType

  // ...
  func generate() -> Generator
  // ...
}
public protocol Sequence {

  associatedtype Iterator : IteratorProtocol

  // ...
  func makeIterator() -> Iterator
  // ...
}
看起来像这样:

public protocol SequenceType {

  associatedtype Generator : GeneratorType

  // ...
  func generate() -> Generator
  // ...
}
public protocol Sequence {

  associatedtype Iterator : IteratorProtocol

  // ...
  func makeIterator() -> Iterator
  // ...
}

一言以蔽之;是的。有点相关:。另请参阅标准库的Swift 3重命名。谢谢Hamish,这两个链接都很有用。有一种感觉就是这样,就是找不到具体的证实。谢谢你的平静。如果你只是以答案的形式发布信息,我可以接受;是的。有点相关:。另请参阅标准库的Swift 3重命名。谢谢Hamish,这两个链接都很有用。有一种感觉就是这样,就是找不到具体的证实。谢谢你的平静。如果你只是以答案的形式发布这些信息,我可以接受。