【问题标题】:Nested functions in SwiftSwift 中的嵌套函数
【发布时间】:2016-12-23 21:31:02
【问题描述】:

我正在快速学习并想了解如何制作嵌套函数

extension Auto {
    // MARK: Auto extensions
    func isRegistred() -> Bool {
        return true
    }
}

如果我想验证 Auto 是否已注册,我必须使用此行 如果Auto.isRegistered() 如果汽车已注册,我还希望能够验证它是否是新的,所以我想添加一个isNew() 函数。是否可以添加嵌套函数,以便我仍然可以验证汽车是否已注册 Auto.isRegistered() 并使用 Auto.isRegistered().isNew() 来验证它是注册汽车还是新汽车?像

extension Auto {
    // MARK: Auto extensions
    func isRegistred() -> Bool {
        func isNew() -> Bool{
            return true
        }
        return true
    }
}

【问题讨论】:

    标签: swift nested-function


    【解决方案1】:

    不,那真的没有意义。您无法访问函数中的函数。 auto.isRegistered() 返回一个Bool,所以auto.isRegistered().isNew() 会尝试在Bool 上调用isNew() 方法,这显然不存在。

    如果您将其命名为“isSomething”,我还建议您使用计算属性而不是函数,这更符合 Apple 的 API。所以你会得到这样的东西:

    extension Auto {
        var isRegistered: Bool {
            // ...
        }
    
        var isNew: Bool {
            // ...
        }
    }
    

    然后您可以简单地检查汽车是否既已注册又是新的

    auto.isRegistered && auto.isNew
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-05
      • 1970-01-01
      • 2014-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-27
      • 1970-01-01
      相关资源
      最近更新 更多