Swift-style-guide: 分号可以帮助提高 Xcode 的性能

创建于 2017-11-16  ·  6评论  ·  资料来源: raywenderlich/swift-style-guide

EN:
With out semicolons, the xcode will waste too much CPU in loading/indexing/analyzing the Swift code and grammar,
and this lead the Xcode to crash/no-response more frequently.
So, without semicolons is not a good choice for coding in Swift.
中文:
没有分号的话,Xcode 将消耗更多的CPU资源来处理加载、索引、分析 Swift 代码和语法,由此而导致的问题就是,Xcode 将会更频繁的崩溃/无响应。
所以在 Swift 中,不使用分号并不是一个好的选择。

More:
笔者在使用Swift 开发的过程中,在没有使用分号时,每天 Xcode 平均崩溃 10 次以上,非常影响开发效率。
The xcode crash or no-response more than 10 times everyday, when I coding Swift without semicolons.

所有6条评论

证明这一点的来源或基准?

更广泛的 Swift 社区——几乎可以看到所有流行的 Swift 开源库——不使用分号。

此外,Apple 有意放弃了 C 风格的编程实践……例如删除 C 风格的 for 循环、++ 运算符等。

如果在该语言的未来版本中甚至删除分号,我也不会感到惊讶。

由于这些原因,即使在编译时有轻微的性能优势,我个人也强烈反对这种更改。

let obj = NSObject()  
// Type `if` here, you can not find the `if` statement in the completion suggestions list.
// But if add a semicolon to the previous line or write a blank line between the previous line, the `if` statement completion suggestion will be in the list.

这个简单的例子意味着:xcode 可能会浪费 CPU 来处理语法,但结果是错误的。

而且我发现 xcode 的大多数崩溃都出现在编辑语句后重建语法。

我会将这个错误指向 Apple。 自从恐龙在地球上漫游(Objective-C 天)以来,我就没有使用过分号,并且不知道您所描述的问题。

我们需要一些基准测试并将此错误提交给 Apple(将尽快完成并发布 RDAR #,请欺骗它),但如果属实,并且如果 Apple 在说 Swift 5 或 6 不恢复之前没有或无法修复使用更多的分号是软件狂热的标志,而不是您在任何专业会议上几乎无法解释的生产力损失。

感谢您提出这个问题。 我将代码完成问题报告为https://bugs.swift.org/browse/SR-6454

希望它可以在 Swift 4.1 中修复。 Apple 正在努力创建一个完全用 Swift 编写的全新工具框架 libSyntax! 它也是开源的,因此您可以参与其中。

如果您有其他自动完成功能失效的具体情况,我认为了解一下会很有用。

撇开工具问题不谈,分号和额外的标点符号会增加认知负担,并且为了清楚起见不做任何事情,这是将它们作为要求删除的原始动机。 请参阅 WWDC 2014 演讲中的 Dave Abrahams 对 Advanced Swift 中的分号的悼词。

除非 Swift 社区发生巨大的变化,否则分号不会回来。 出于这个原因,我正在关闭这个问题。 但是,无论如何,请报告您发现的错误。 它有助于整个社区向前发展! 😄

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

samkim102 picture samkim102  ·  6评论

rayfix picture rayfix  ·  3评论

hollance picture hollance  ·  28评论

ghost picture ghost  ·  26评论

grosch picture grosch  ·  6评论