小编rtz*_*zui的帖子

如何在 Kotlin 中创建不可变对象?

Kotlin 有一个 const 关键字。但我不认为 kotlin 中的常量是我认为的那样。它似乎与 C++ 中的 const 有很大不同。在我看来,它仅适用于静态成员和 Java 中的原语,并且不适用于类变量:

data class User(val name: String, val id: Int)

fun getUser(): User { return User("Alex", 1) }

fun main(args: Array<String>) {
    const val user = getUser()  // does not compile
    println("name = ${user.name}, id = ${user.id}")
    // or
    const val (name, id) = getUser()   // does not compile either
    println("name = $name, id = $id")
}
Run Code Online (Sandbox Code Playgroud)

由于这似乎不起作用,我认为我真正想要的是第二类,它删除我不想支持的操作:

class ConstUser : User
{
    ConstUser(var name: String, val id: int) : …
Run Code Online (Sandbox Code Playgroud)

constants immutability kotlin

7
推荐指数
1
解决办法
7930
查看次数

标签 统计

constants ×1

immutability ×1

kotlin ×1