📜  val 和 const 之间的 kotlin 区别 (1)

📅  最后修改于: 2023-12-03 15:05:47.481000             🧑  作者: Mango

val 和 const 之间的 Kotlin 区别

在 Kotlin 中,val 和 const 都是用来声明常量的关键字,但它们之间有一些区别。

val

val 是一个不可变的变量,只能被赋值一次,即它是只读的。它的值可以在编译时确定,也可以在运行时确定;但一旦赋值,其值就不能被重新分配。

val name = "Alice"
name = "Bob" // 编译错误:val cannot be reassigned
const

const 是一个编译时常量,只能用于顶层或对象声明中定义的变量。这个变量在编译时就已经确定了它的值,不能被重新分配。因为它是编译时常量,所以它只能是基本数据类型、字符串或者其他 const 属性的引用。

const val PI = 3.14
const val name = "Alice"

object Example {
    const val MAX_VALUE = 100
    const val MIN_VALUE = -100
}
val vs const
  • val 可以定义为局部变量,而 const 只能在顶层或对象声明中使用。
  • val 的值可以在运行时确定,而 const 的值必须在编译时确定。
  • val 的值可以是任何类型,而 const 只能是基本数据类型、字符串或其他 const 属性的引用。
  • val 可以被重新分配,const 无法重新分配。
总结

val 用于定义一个只读变量,其值在运行时确定;const 用于定义编译时常量,其值在编译阶段被确定。通过选择不同的关键字,我们可以根据需要来定义常量。