我最近读到了const
关键字,我很困惑!我找不到const
和val
关键字之间的任何区别,我的意思是我们可以使用它们来创建一个不可变的变量,还有什么我遗漏的吗?
你可以把Kotlin变成Java。那么您可以看到const比val多了一个静态修饰符。像这样的简单代码。
科特林:
const val str = "hello"
class SimplePerson(val name: String, var age: Int)
至Java(部分):
@NotNull
public static final String str = "hello";
public final class SimplePerson {
@NotNull
private final String name;
private int age;
@NotNull
public final String getName() {
return this.name;
}
public final int getAge() {
return this.age;
}
public final void setAge(int var1) {
this.age = var1;
}
public SimplePerson(@NotNull String name, int age) {
Intrinsics.checkParameterIsNotNull(name, "name");
super();
this.name = name;
this.age = age;
}
}
只是为了补充Luka的回答:
编译时常数
可以使用const修饰符将其值在编译时已知的属性标记为编译时常量。此类物业需满足以下要求:
这样的属性可以在注释中使用。
资料来源:正式文件
常量
是编译时间常量。这意味着它们的值必须在编译时赋值,而不像val
s那样可以在运行时进行赋值。
这意味着,常量
永远不能赋给函数或任何类构造函数,而只能赋给字符串
或基元。
例如:
const val foo = complexFunctionCall() //Not okay
val fooVal = complexFunctionCall() //Okay
const val bar = "Hello world" //Also okay
我最近读到了关于const关键字的文章,我很困惑!我找不到const和val关键字之间的任何区别,我的意思是我们可以使用它们来生成一个不可变的变量,还有什么我遗漏的吗?
问题内容: 在学习电子时,我发现了两种获取BrowserWindow对象的方法。 和 和之间有什么区别? 我不明白为什么可以使用。我是否想念有关JS的重要信息? 问题答案: 这两段代码是等效的,但是第一段代码使用的ES6分解分配要短一些。 这是一个如何工作的简单示例:
和之间有什么区别? 什么时候我只能使用其中一个
Kotlin中的和有什么区别? 如本链接所述: 只读属性声明的完整语法与可变属性声明的不同之处在于两个方面:它以val而不是var开头,并且不允许setter。 但就在前面有一个使用setter的示例。 为什么我们两者都需要? 这不是Kotlin中变量的重复,与Java的区别:“var”vs.“val”?因为我询问的是与文档中的特定示例相关的疑问,而不仅仅是一般性的疑问。
问题内容: 我不知道是什么样的区别,并在 ES6 。两者都是块作用域的,如以下代码中的示例所示: 在ES5中,输出为: 但是在ES6中它将是: 我想知道为什么 ES6 允许更改值,问题是为什么我们现在应该使用’const’?我们可以用“ let”代替吗? 注意 :jsbin可以用于测试,选择 JavaScript 运行 ES5 代码,并选择 Traceur 使用 ES6 功能运行它。 问题答案:
本文向大家介绍说下var、let和const有什么区别?相关面试题,主要包含被问及说下var、let和const有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 var定义变量,let定义常量,const定义变量。 var存在变量提升,let和const不存在变量提升 let,const部分说反了吧...