Kotlin 中的“const”和“val”有什么区别?

常量关键字

只要变量值在应用程序的整个生命周期中保持不变,就会在 Kotlin 中使用const关键字。这意味着const仅应用于类的不可变属性。简单来说,就是使用const来声明一个类的只读属性。

有一些约束应用于const变量。它们如下 -

  • const只能应用于类的不可变属性。

  • 它不能分配给任何函数或任何类构造函数。它应该分配有原始数据类型或字符串。

  • const变量将在编译时初始化。

示例

在下面的示例中,我们将声明一个const变量,我们将在我们的应用程序中使用相同的变量。

const val sName = "nhooo";
//这行会抛出一个错误,因为我们不能
//将 Const 与任何函数调用一起使用。
//常量 val myFun = MyFunc();

fun main() {
   println("Example of Const-Val--->"+sName);
}
输出结果

它将产生以下输出 -

Example of Const-Val--->nhooo

Val 关键字

在 Kotlin 中,val也用于声明变量。“val”“const val”都用于声明类的只读属性。声明为const的变量在运行时初始化。

  • val处理类的不可变属性,即只能使用val声明只读变量。

  • val在运行时初始化。

  • 对于val,内容可以被静音,而对于const val,内容不能被静音。

示例

我们将修改前面的示例,以便使用val传递函数,并且在运行时不会出现任何错误。

const val sName = "nhooo";

//我们可以使用 val 传递函数
val myfun=MyFunc();

fun main() {
   println("Example of Const-Val--->"+sName);
   println("Example of Val--->"+myfun);
}

fun MyFunc(): String {
   return "Hello Kotlin"
}
输出结果

执行代码后,它将生成以下输出 -

Example of Const-Val--->nhooo
Example of Val--->Hello Kotlin