例如,如果我有以下数据类:当null传递时,有没有办法在非可选参数上使用默认值?
data class Data(
val name: String = "",
val number: Long = 0
)
和功能可以返回null
:
fun newName(): String? {}
fun newNumber(): Long? {}
我知道我可以使用以下方法来使用的功能价值,如果他们不null
:
val newName = newName()
val newNumber = newNumber()
val data = Data(
if (newName != null) newName else "",
if (newNumber != null) newNumber else 0
)
但是,有没有办法只有用在CON指定的默认值当值为null
时,Data
类的结构体?
我找不到文档中任何东西,但我希望像这样的工作:
val data = Data(newName()?, newNumber()?)
但是,这并不编译。
而不是'if(newName!= null)newName else“”''你可以使用'newName?:'“''。这就是所谓的猫王操作员。 – Mibac
@Mibac哦,对了,我忘了!绝对更简洁,但它仍不使用类构造函数中定义的默认参数。 – Bryan