Swift 中的嵌套函数

Nested functions in Swift

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

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

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

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

不,那真的没有意义。您不能访问函数内的函数。 auto.isRegistered() returns a Bool,所以 auto.isRegistered().isNew() 会尝试调用 Bool 上的 isNew() 方法,显然,这不存在。

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

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

    var isNew: Bool {
        // ...
    }
}

然后您可以使用

简单地检查汽车是否已注册并且是新的
auto.isRegistered && auto.isNew