【问题标题】:Swift class, method and property restrictionsSwift 类、方法和属性限制
【发布时间】:2018-11-11 19:22:02
【问题描述】:

我正在通过代码限制在可读性/可用性和性能改进之间寻找可行的折衷方案。

根据this 问题和链接的Apple document,尽可能多地使用代码限制似乎非常重要。

另一方面,我从未见过实施所有代码限制的示例,并且我永远不会尝试这样编写代码:

    final internal class TestClass {
        final private var result: String = "Result"
        ...

        final internal func TestMethod(result: String) -> String {
            ...
        }
    }

那么,是否存在普遍接受且“有效”的折衷方案?

编辑

换句话说,如果像finalprivate这样的代码限制所产生的性能提升和附件中提到的一样巨大,为什么我们很少看到呢?为什么它不是默认行为?

【问题讨论】:

  • 不清楚你在问什么。请edit你的问题(没有cmets)澄清你的问题。你到底有什么问题?
  • @rmaddy 希望这个编辑有助于理解我 :)

标签: swift restriction


【解决方案1】:

链接的答案错误地陈述了链接的博客文章。如果您使用的是整体模块优化(您应该始终在发布模式下使用),出于性能原因,您通常不需要主动添加finalprivate。编译器将确定何时可以插入它们。您应该使用finalprivate 向其他程序员(和您自己)表达您的意图,而不是优化器。

但是,如果启用了整体模块优化,则所有模块会同时编译在一起。这允许编译器一起推断整个模块,并在没有可见覆盖的情况下推断带有 internal 的声明的 final。

【讨论】:

    猜你喜欢
    • 2016-04-15
    • 2012-12-23
    • 1970-01-01
    • 2020-03-17
    • 2011-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-18
    相关资源
    最近更新 更多