GeneratorOf创建一个通用的Generator(和Sequence):
struct GeneratorOf<T> : Generator,Sequence { init(_ next: () -> T?) init<G : Generator where T == T>(_ self_: G) func next() -> T? func generate() -> GeneratorOf<T> }
我不明白的是第二个init:
init<G : Generator where T == T>(_ self_: G)
为什么在地球上有必要声明T == T ??
这是什么(_ self_:G)应该是什么意思?
谢天谢地,Swift的一个主要优点是比Objective C …:-P简单得多的语法
解决方法
这是Swift stdlib头自动生成器中的一个错误.在解析类型时,它们会在某些不应该替换的类型中替换它们.这里的实际定义应该是:
init<G : Generator where Generator.Element == T>(_ self_: G)
但由于Generator.Element与T相同,因此该工具将替换它. Apple一直在努力解决这个问题.
(_ self_:G)是标准语法,虽然这是我在别处没有看过的不同寻常的风格,除了在SequenceOf中,它可能是由同一个人写的.我怀疑这只是开发人员如何命名变量,而不是具有更深层含义.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。