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
我正在学习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