我正在尝试为一个不错的 kotlin 数据类解决方案找到一个解决方案。我已经有了这个:
data class Object(
var classMember: Boolean,
var otherClassMember: Boolean,
var example: Int = 0) {
fun set(block: Object.() -> kotlin.Unit): Object {
val copiedObject = this.copy()
copiedObject.apply {
block()
}
return copiedObject
}
fun touch(block: Object.() -> kotlin.Unit): Object {
return this.set {
classMember = true
otherClassMember = false
block() }
}
}
val test = Object(true,true,1)
val changedTest = test.touch { example = 2 }
此方法的结果是changedTest
对象具有classMember = true
,otherClassMember = false
和example = 2
这个解决方案的问题是,类属性不是不可变的var
声明。有人知道如何优化我的方法来改变var
吗val
?