Sta*_*ili 3 constructor kotlin swift
我想在Kotlin中使用一个可选的构造函数,它可以创建一个对象或返回null.
这是一个Swift示例,展示了我希望它如何工作:
class Beer {
init?(yourAge : Int){
if yourAge < 21 {
return nil
}
}
}
Beer(yourAge: 17) //is nil
Beer(yourAge: 23) //a Beer object
Run Code Online (Sandbox Code Playgroud)
我当然可以把检查放在另一个函数中(下面是Kotlin相当于前面的例子),但它不是很好
class Beer(){
fun initialize(yourAge : Int): Beer? {
if (yourAge < 21){
return null
}else {
return Beer()
}
}
}
Run Code Online (Sandbox Code Playgroud)
Kolelin不支持Yole已经说过的可选构造函数,但是你可以通过在一个伴随对象中定义的一个invoke操作符来实现你想要的东西:
class Beer {
companion object {
operator fun invoke(yourAge: Int) = if (yourAge < 21) {
null
} else {
Beer()
}
}
}
Beer(17) // null
Beer(23) // instance of Beer
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
111 次 |
| 最近记录: |