kotlin - Kotlin:mutableList 应该声明为 Val 还是 Var?
问题描述
我正在为我的团队阅读现有的代码库,我注意到mutableListOf
它总是被声明为val
. 在某些情况下,元素只添加mutableListOf
一次。例如
val jobList = mutableListOf<JobActivity>()
jobList.addAll(job.activities)
在其他情况下,元素被添加到mutableListOf
循环中。例如
val jobList = mutableListOf<JobActivity>()
newJobList.filterScanType(retrieveJobType(JobContext.NEW)).forEach {
jobList.add(it)
}
由于列表在创建时未初始化,为什么不声明mutableListOf
为var
?网上找到的很多例子也遵循同样的声明mutableListOf
方式为val
.
在所描述的 2 个场景中,哪个最适合使用,val
或者var
?
解决方案
我认为它被声明为 val 因为列表总是相同的,唯一改变的是它的元素。你永远不会做这样的事情:
joblist = anotherList
正如@Taseer 所说,即使它是一个val,也可以更改对象的属性。例如:
data class Example(var name: String)
val exampleObject = Example("SomeName")
你仍然可以这样做:
exampleObject.name = "AnotherName"
但你不能这样做:
exampleObject = anotherObject
推荐阅读
- python - 从 Pandas Dataframe 中的现有日期和时间列创建日期时间列的更快方法
- swift - 将在 swift 4 中添加任何数字类型的函数
- arcgis-js-api - ArcGIS API:绘制圆固定中心
- python - pymongo 基于服务器系统时间的相对日期时间查询文档
- python - 是否可以在 Python Click 中动态生成命令
- python - 关于机器学习:使用 array.reshape(-1, 1) 重塑你的数据
- rest - 将 curl 命令转换为 golang conn.publish 代码
- python - 打印差异大于一个值的列表元素
- java - 如何将文本文件读入数组,计算出现次数然后显示计数
- ios - iOS - 使用矢量资源比使用 png 的利弊