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