假設我在列表中有一些值。我想新元素返回另一個列表從另一個列表創建一個列表
fun newList():List<Int>{
val values =listOf<Int>(1,2,3,4,5,6);
return 7::values; // something like that
}
假設我在列表中有一些值。我想新元素返回另一個列表從另一個列表創建一個列表
fun newList():List<Int>{
val values =listOf<Int>(1,2,3,4,5,6);
return 7::values; // something like that
}
的科特林名單已經the plus
operator超載in kotlin-stdlib
,這樣你就可以將項目添加到列表:
val values = listOf(1, 2, 3, 4, 5, 6)
return values + 7
還有,增加了另一個列表過載:
val values = listOf(1, 2, 3, 4, 5, 6)
return listOf(-1, 0) + values + listOf(7, 8)
請注意,在這兩種情況下都會創建一個新列表,並將元素複製到其中。
對於MutableList<T>
(已經突變的功能,在具有List<T>
對比度),有一個plusAssign
operator implementation,可以如下使用:
fun newList(): List<Int> {
val values = mutableListOf(1, 2, 3, 4, 5, 6)
values += 7
values += listOf(8, 9)
return values
}
你可以像下面這樣做
fun newList():List<Int>{
val values =listOf(1,2,3,4,5,6) //Type can be inferred
return values.plus(7)
}
通過使用傳播算子A不同的方法。也許在某些情況下會比使用+
標誌或mutableListOf
fun newList(): List<Int>{
val values = listOf(1,2,3,4,5,6)
return listOf(7, *values.toTypedArray(), 8, 9)
}
我想要一個斯卡拉,像for
和yield
簡單。這是相當不錯的 - 目前的實驗 - 協同程序:
fun testYield(max:Int): List<Int> {
val values = buildSequence{
for (i in 1..max){
yield(i)
}
}
return values.toList();
}
或者更短的方式:
fun testYieldFast(max: Int) = buildSequence {
for (i in 1..max)
yield(i)
}.toList();
它允許快速一成不變懶的建築,在那裏經常級聯通常是不可變列表緩慢。