8

我是Kotlin的初学者,我看过一些关于数据类的示例代码,参数似乎都是val类型,就像代码A一样

我需要更改数据类MSetting的一些值,所以我设计了代码B,你能告诉我代码B是否是好方法吗?

代码 A

data class MSetting (
        val _id: Long, 
        val name: String,
        val createdDate: Long,
        val description: String
)

代码 B

data class MSetting (
        var _id: Long, 
        var name: String,
        var createdDate: Long,
        var description: String
)
4

4 回答 4

14

看来参数都是val类型...

你能告诉我代码 B 是否是好方法吗?

val和的区别var: 用声明的属性val不能随时间更新;它就像java中的常量。声明的属性var可以超时更改。

这完全取决于您的要求。如果您需要随着时间的推移更改属性,请选择var; val否则。您可以将两者混合在一个对象中而不会出现任何问题。

在此处阅读有关 Kotlin 文档中属性的更多信息https://kotlinlang.org/docs/reference/properties.html

于 2018-04-06T08:36:24.080 回答
0

我喜欢使用 val 作为经验法则,因为它使数据类不可变。当然,我正在使用 var 但仅在必要时使用。为什么让数据类不可变更好?读这个

于 2021-12-01T06:22:11.477 回答
0

数据类和解构声明</p>

data class Person(val name: String) {
    var age: Int = 0
}

在 toString()、equals()、hashCode() 和 copy() 实现中只会使用属性名称,并且只有一个组件函数 component1()。虽然两个 Person 对象可以有不同的年龄,但它们将被视为相等。

val person1 = Person("John")
val person2 = Person("John")
person1.age = 10
person2.age = 20
于 2022-02-10T03:24:36.840 回答
0

IT 完全取决于您的应用程序。我们知道 val 是不可变的变量类型 - 一旦分配我们就无法更改它的值,而 var 是可变数据类型 - 可以更改或重新分配值。因此,如果您有需要更改该数据类的值的要求,请使用“var”,否则您可以使用“val”。

于 2022-02-10T03:14:00.127 回答