可可 – 斯威夫特的GeneratorOf疯狂初始化

可可 – 斯威夫特的GeneratorOf疯狂初始化,第1张

概述GeneratorOf创建一个通用的Generator(和Sequence): struct GeneratorOf<T> : Generator, Sequence { init(_ next: () -> T?) init<G : Generator where T == T>(_ self_: G) func next() -> T? func generat 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中,它可能是由同一个人写的.我怀疑这只是开发人员如何命名变量,而不是具有更深层含义.

请记住,stdlib标头不是“普通”标头. Swift没有标题.苹果公司做了一个特殊的Apple技巧,允许一个.

Chris Lattner commented on this in the devforms.

总结

以上是内存溢出为你收集整理的可可 – 斯威夫特的GeneratorOf疯狂初始化全部内容,希望文章能够帮你解决可可 – 斯威夫特的GeneratorOf疯狂初始化所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1003591.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存