kotlin - Kotlin-有没有办法在没有 foreach 的情况下更新 Kotlin 集合项中的单个字段?
问题描述
我正在Android
使用kotlin
. 我对 kotlin 非常陌生,我有以下场景。
我在 List 集合对象中有用户列表,其中包含firstName
、和lastName
mobile
hasDeleted
var myList: List<Users>
myList = <I have list of users here>
我只想用每个用户hasDeleted
的值更新一个标志。true
我知道我们可以用它foreach
来更新值。但是,我想知道我是否可以遵循其他方法。
解决方案
不使用的唯一原因forEach
是您的Users
对象是不可变的(您至少应该考虑这一点)并且它是一个定义如下的数据类:
data class Users(val firstName: String,
val lastName: String,
val mobile: String,
val hasDeleted: Boolean)
如果这是你所拥有的,那么这map
是你最好的选择,因为你不能再改变一个Users
对象,hasDeleted = true
因为它们是不可变的。在这种情况下,您应该使用以下内容,它将返回一个包含更新Users
对象的列表。
myList.map { it.copy(hasDeleted = true) }
除了这种特殊情况,我认为没有充分的理由避免使用forEach
.
推荐阅读
- angular - ngx 模态没有以角度关闭
- sqlite - 从 SQLte 迁移到 Realm
- system.reactive - Rx.Net 如何在源序列空闲一段时间时发出元素?
- python - `functools.cmp_to_key` 不适用于二元组问题的比较
- java - Java:使用链表将大数相乘
- python - 如何将字符串中的“未定义”替换为 0?
- javascript - 如何添加在 React 组件中编辑文本的功能?
- java - 无法删除以 UUID 作为 ID 的实体
- regex - SilverStripe .htaccess 在不更改 URL 的情况下重定向到不同的页面不起作用
- javascript - Javascript 游戏命中检测仅适用于第一个对象