1
Helsing 2022 年 6 月 27 日 via iPhone
看 Kotlin 构造方法的介绍
|
2
youngxhui 2022 年 6 月 27 日 via Android
kotlin data class
|
3
cmdOptionKana 2022 年 6 月 27 日
你看这个 class Gallery_1(val context: Context),与 class Album(val id: String) 小括号的用法是不是一样?
|
4
qianxi0410 2022 年 6 月 27 日
scala 没有?
|
5
chendy 2022 年 6 月 27 日
java 还真有,但是不是 class (虽然也是 class )是 record
|
6
FireFoxAhri 2022 年 6 月 27 日
有点像 Scala 的 case class
|
7
AltairT 2022 年 6 月 27 日
|
8
EscYezi 2022 年 6 月 27 日 via iPhone
如果用过 Lombok ,这个类似于成员变量+AllArgConstructor 的简化版
|
9
bringyou 2022 年 6 月 27 日
ps: 自从 java14 开始,也有这个语法了,详见[record class]( https://www.baeldung.com/java-record-keyword)
|
10
lisongeee 2022 年 6 月 27 日 |
11
Leviathann 2022 年 6 月 27 日 不是 现在连学都不学就可以来吐槽品评语法了吗
|
12
lisongeee 2022 年 6 月 27 日
楼上某些人不要把 data class 和 普通 class 搞混了,楼主代码示例里没有 data class 也没有 record class
这就是 在构造器声明属性并初始化属性 在线运行 https://pl.kotl.in/CjwWRrWLl |
13
su100 2022 年 6 月 27 日
// 1
class Album( val id: String, val name: String, var count: Long = 0, var age: Int? = null, ) // 2 class Album2(id: String, name: String, count: Long, age: Int? = null) { val id = id var name = name var count = count var age = age } // 3 class Album3(id: String, name: String, count: Long, age: Int? = null) { val id: String var name: String var count: Long var age: Int? init { this.id = id this.name = name this.count = count this.age = age } } ============== 以上三种写法等价的,如果写成第二种,idea 会提示你可以将 id 、name 这些移到构造函数,就是以一种那样。 |
14
MakHoCheung 2022 年 6 月 27 日
Java 怎么就没有这种用法呢,Java 的 Record 就是这种写法
|
15
jeesk OP @MakHoCheung 不好意思。 除了楼上说的 scala 的 case 我在 java 真没见过省略参数。 我也是第一次看 kotlin 的代码, 见谅。.我不是搞这玩意的。
|
17
zoharSoul 2022 年 6 月 28 日
这不就是构造函数吗
|
18
jiulang 2022 年 6 月 28 日
record TcpReset(TcpConnection Connection, byte[]? DivertBuffer, WinDivertAddress DivertAddress, long Ticks);
|
19
jiulang 2022 年 6 月 28 日
kotlin 和 csharp 简直一样
|
20
ZhuZhuQianJin 2022 年 6 月 28 日
写的没啥问题呀,能省就省了呗,反正是数据类,就是为了声明结构,要那么多 get set 干啥,写多了就很丝滑,看起来也很顺畅,设计思想 歪瑞古德
|
21
cenbiq 2022 年 6 月 29 日 via iPhone
这不很多语言都有这种吗,C#/Java 也有啊
|
22
zzAndroid 2022 年 12 月 24 日
class 后面跟小括号,就代表是个构造函数,括号里的形参就相当于 new 出这个类时默认要传的参数
|