因此,我使用的是自定义SDK,需要在其中输入一系列数字,例如1到100,作为Strings到listOf集合中。是否有一些有效的方法可以通过for循环来完成?我几乎没有Kotlin的经验,所以所有帮助都值得赞赏!
答案 0 :(得分:2)
您不能真正“添加到不可变的[列表]”。
如果您已经在某个地方使用了可变列表,则可以使用toList()
(如@anber的答案)来获取只读版本,或者也可以将其直接传递给需要{{ 1}}(如果您在框架使用列表时不更改列表)。
如果您只是想从一个数字范围构建一个不可变的数字字符串列表,可以使用从范围对象本身开始的基本功能操作来实现:
List
请注意此处的Kotlin范围语法。这样,您实际上就不必使用val list = (1..100).map { "$it" }
循环,甚至不必使用临时可变列表。除非它是业务的一部分,否则可变物在Kotlin中并不是很惯用。
您也可以使用for
代替字符串模板,但是我发现它对于模板更易读。
答案 1 :(得分:0)
如果我对您的理解正确,则可以创建可变列表,循环添加项目,然后将其转换为不可变列表:
val mutableList = mutableListOf<String>()
for (i in 0..10) {
mutableList.add(i.toString())
}
val immutableList = mutableList.toList()
答案 2 :(得分:0)
有一个看起来像构造函数的函数,但实际上是顶级函数。您可以像这样使用它:
<requestHandler name="/myhandler" class="solr.SearchHandler">
<lst name="invariants">
<str name="handlerName">myhandler</str>
.
.
</lst>
.
.
</requestHandler>
val l = List(99) { "${it + 1}" }
的类型为l
(不可变)。