2017-04-22 176 views

回答

3

的科特林名單已經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 
} 
0

你可以像下面這樣做

fun newList():List<Int>{  
    val values =listOf(1,2,3,4,5,6) //Type can be inferred 
    return values.plus(7) 
} 
1

通過使用傳播算子A不同的方法。也許在某些情況下會比使用+標誌或mutableListOf

fun newList(): List<Int>{ 
    val values = listOf(1,2,3,4,5,6) 
    return listOf(7, *values.toTypedArray(), 8, 9) 
} 
0

我想要一個斯卡拉,像foryield簡單。這是相當不錯的 - 目前的實驗 - 協同程序:

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(); 

它允許快速一成不變懶的建築,在那裏經常級聯通常是不可變列表緩慢。