Iterable<T>相關函式

Functional Programming

原本的集合不會動到,複製一份給其它函式去執行,傳回新的結果。

Iterable.map()

擴展函式程式碼如下:

1
2
3
public inline fun <T, R> Iterable<T>.map(transform: (T) -> R): List<R> {
    return mapTo(ArrayList<R>(collectionSizeOrDefault(10)), transform)
}

集合元素字串長度

Iterable.map()集合擴展函式map,會傳回跟原本集合一樣大小的集合。
以下程式碼會傳回list元素的長度,傳回新的list,不會修改到原本的list。
it代表每個集合元素。

1
2
3
4
5
fun main() {
    val list = listOf<String>("Mary", "Bill", "Alex", "Ben")
    val result = list.map { it.length }
    println(result)
}
[4, 4, 4, 3]

加上前綴字串

以下程式碼為每個元素加上前綴字串,不會修改原本list,會複製一份新的list,修改複本傳回。

1
2
3
4
5
6
fun main() {
    val list = listOf<String>("Mary", "Bill", "Alex", "Ben")
        .map { "Little " + it }
        .map { "Happy " + it }
    println(list)
}
[Happy Little Mary, Happy Little Bill, Happy Little Alex, Happy Little Ben]

results matching ""

    No results matching ""