+=无法使用

来源:3-4 集合框架

qq_CaptainLu_0

2021-05-13

图片描述 为什么这个+=无法使用啊

写回答

1回答

bennyhuo

2021-05-13

要么是var,这时候+=是创建新list并赋值。要么这个list是mutable,+=等价于add

0
7
qq_忘记
可以这样理解吗? 如果list定义为List,它并没有+=对应的plus或者plusAssign函数,所以+=是调用了Collection.plus临时创建了一个ArrayList返回来赋值给list,所以需要它是var类型。 如果list定义为ArrayList或者MutableList,+=调用的是MutableCollection.plusAssign,执行的是this.add所以修改的是元素,所以此时var和val都可以。
2023-01-13
共7条回复

学会Kotlin 突破开发语言瓶颈

如果有一门语言可以取代Java,那么它一定是Kotlin。

1760 学习 · 481 问题

查看课程