我是Kotlin的初学者!我们能否解释一下Kotlin中这些类之间的区别
class Person(val name: String, val age: Int)
class Person(name: String, age: Int)
class Person(var name: String,var age: Int)
Run Code Online (Sandbox Code Playgroud)
我如何在Kotlin中为数据类添加getter和setter?
首先,您应该尝试阅读手册中的不同之处:
https://kotlinlang.org/docs/reference/data-classes.html
https://kotlinlang.org/docs/reference/classes.html
但我们试着解释一下:
class Person(val name: String, val age: Int)
Run Code Online (Sandbox Code Playgroud)
Kotlin编译器将为两个构造函数参数生成存储值的相应字段,并生成相关的getter.由于关键字,值是不可变的,val因此不会有任何setter.
class Person(name: String, age: Int)
Run Code Online (Sandbox Code Playgroud)
参数仅传递给构造函数,但不存储为字段.所以也没有吸气剂和制定者.
class Person(var name: String, var age: Int)
Run Code Online (Sandbox Code Playgroud)
与第一个示例中一样,值存储在生成的字段中.但是由于关键字,值是可变的,var因此编译器将生成getter和setter.
data是放在class声明前面的附加(可选)关键字.除了getter和setter之外,这将生成一个toString方法,用它们的名称打印所有属性的值,并hashCode考虑每个值的方法.为data类生成getter和setter时,您不需要手动添加它们.
Kotlin很多关于减少由Kotlin编译器完成的Java开发人员所需的手动工作.
| 归档时间: |
|
| 查看次数: |
41 次 |
| 最近记录: |