当前位置: 首页 > 知识库问答 >
问题:

如果在类中删除'var'关键字,有什么区别?

彭鸿哲
2023-03-14

你能告诉我代码A和代码B的区别吗?

代码A

class Person(firstName: String) {
}

代码B

class Person(val firstName: String) {
}

共有1个答案

雷浩思
2023-03-14

第一个只是设置一个参数到你的构造函数设置为类成员的。

其次,您已经创建了一个成员变量firstName,并将传入的数据传递给它。

第二个代码等于:

class Person(firstName: String) {
    val firstName:String?
    init{
       this.firstName = firstName
    }
}

为了让你明白,让我们试试这个代码

fun main(args: Array<String>) {
    var person = Person("Stackoverflow")
    println(person.firstName)
}

class Person(val firstName: String) {

}

输出堆栈溢出

好的让我们试试第一个密码

fun main(args: Array<String>) {
    var person = Person("mohamed")
    println(person.firstName)
}

class Person( firstName: String) {

}

输出编译器错误

未解析的引用:firstName

 类似资料:
  • 问题内容: 这可能是一个非常琐碎的问题,但是我既无法通过网络搜索引擎也无法在php.net上找到答案。如果您没有时间解释,请直接将我定向到可以阅读的内容。 “ var”关键字在PHP中是什么意思? PHP4和PHP5之间有什么区别吗? 问题答案: 它用于在PHP4中声明类成员变量,不再需要。它将在PHP5中工作,但是从不推荐使用的版本开始,从PHP 5.0.0版本到5.1.2版本都将发出警告。自P

  • 问题内容: 我在此阅读了bash手册页,但我不了解其中的区别。我对它们进行了测试,它们似乎产生了完全相同的结果。 如果未通过命令行参数设置值,我想设置变量的默认值。 上面的代码回显if 为null并回显if不为null的值。这样: 根据Bash手册页, 使用默认值。如果参数未设置或为null,则替换单词的扩展名。否则,将替换参数的值。 分配默认值。如果参数未设置或为空,则将单词扩展指定给参数。然后

  • 问题内容: 什么是Java中的以下关键字的区别:,? 问题答案: an 是a的行为的抽象规范,而a 是此类规范的具体实现。 因此,当您撰写本文时,是在说您已经在实现的实现中满足了一些抽象规范。 意味着您可以采用实现()或规范(),并使用其他功能或新功能对其进行添加(或更改其行为的规范),从而修改其行为并对其进行_扩展_ 。

  • Dart中的和关键字有什么区别?

  • 问题内容: 我找不到有关该关键字的文档,但在网上看到了使用该关键字的示例。 我正在Oracle模式下进行一些实验,其中有table : 一张表: 和表: 查询应返回部门名称,部门经理的名字和部门所在的城市。 与使用关键字相比,使用关键字的代码似乎返回了一些结果 的代码: 的代码: 两种情况之间是否有区别,还是我偶然发现它们返回相同结果的情况? 问题答案: 根据1992 ANSI SQL参考,INN

  • 本文向大家介绍此关键字在Java中有什么用?,包括了此关键字在Java中有什么用?的使用技巧和注意事项,需要的朋友参考一下 Java中的“ this”关键字是对当前类对象的引用。使用它,您可以引用类的字段,方法或构造函数。 使用“ this”关键字引用字段 如前 ,您可以使用“ this” 关键字从实例方法或构造函数中引用类的实例字段/变量。  即如果一个方法的名称相同的实例变量一个局部变量的话,