Kotlin中创建包含3个相同元素的列表的方法咨询
Kotlin中创建包含3个相同元素的列表的方法咨询
嘿,我懂你不想重复写三次相同代码的心情!你遇到的问题确实是因为repeat函数返回的是Unit,没法直接放进listOf里当作元素。这里有几个更简洁的写法可以实现你的需求:
使用List构造函数(最推荐)
Kotlin的List自带了一个实用的构造方法,直接指定要创建的元素数量,再用lambda提供每个元素的生成逻辑就行,完全贴合你的场景:List(3) { Item("abc", 123) }这个lambda会被调用3次,每次返回一个新的
Item实例,最终生成正好包含3个目标元素的列表。用generateSequence生成序列再转列表
如果你习惯用序列相关的API,也可以试试这种写法:generateSequence { Item("abc", 123) } .take(3) .toList()generateSequence会持续生成你指定的元素,take(3)截取前3个,最后调用toList()就转换成我们需要的列表啦。重复单个元素(适合不可变对象场景)
要是你的Item是不可变的,不需要每次都创建新实例,也可以先创建一个实例再重复放入列表:val item = Item("abc", 123) listOf(item, item, item)这种写法比你原来的代码少重复了两次构造函数调用,适合元素可以复用的情况。
备注:内容来源于stack exchange,提问作者me.at.coding
相关产品推荐
相关产品推荐

