省略 Kotlin 数据类中设置为 null 的可选参数

Omit optional parameters set as null in Kotlin data class

提问人:kk2004 提问时间:9/1/2023 最后编辑:kk2004 更新时间:9/1/2023 访问量:58

问:

最佳实践:在数据类中为其分配 null 时省略可选参数?

示例:如果 c = null,则数据类 xyz(val a:String ?,val b: String?)。data class xyz(val a:String ?,val b: String?, val c: String?= null)

调用 xyz.toString(),它将 null 视为“null”。所以输出是 xyz(“String for a”, String for b“, ”null“)。

但是实际输出 xyz(“String for a”, String for b“)。

我可以使用辅助构造函数或invoke()吗?哪个更好?

kotlin optional-parameters 数据类

评论

1赞 broot 9/1/2023
我不完全清楚你的意思。在执行操作时省略可选参数?创建对象时,将其打印在 ?如果是后者,您希望如何区分 null 和 null 的情况(假设它也是可选的)?这两种情况将产生完全相同的输出。您可以随时自己实现。toString()cbtoString()

答:

0赞 ryankuck 9/1/2023 #1

如果有时需要值 c,但在这种情况下不需要,则两个选项是:

val newXyzObject = xyz(a = "String for a", b = "String for b", c = null)

val newXyzObject = xyz(a = "String for a", b = "String for b")

但是,由于 C 具有默认值,因此最好使用第二个选项,因为它更具可读性。