<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ### map函數 **集合中的map函數是最常用的一種函數式API,它用于將集合中的每個元素都映射成一個另外的值,映射的規則在Lambda表達式中指定,最終生成一個新的集合**。比如,這里我們希望讓所有的水果名都變成大寫模式,就可以這樣寫: ~~~ fun main() { val list = listOf("Apple", "Banana", "Orange", "Pear", "Grape", "Watermelon") val newList = list.map { it.toUpperCase() } for (fruit in newList) { println(fruit) } } ~~~ 可以看到,我們在map函數的Lambda表示式中指定將單詞轉換成了大寫模式,然后遍歷這個新生成的集合。運行一下代碼,結果如圖2.26所示。 ![圖像說明文字](http://epub.ituring.com.cn/api/storage/getbykey/screenshow?key=2003f6a3593e468924f0) **map函數的功能非常強大,它可以按照我們的需求對集合中的元素進行任意的映射轉換**,上面只是一個簡單的示例而已。除此之外,你還可以將水果名全部轉換成小寫,或者是只取單詞的首字母,甚至是轉換成單詞長度這樣一個數字集合,只要在Lambda表示式中編寫你需要的邏輯即可。 另一個示例: 如果你想打印的只是一個姓名列表,而不是人的完整信息列表,可以用map來變換列表: ``` data class Person(val name: String, val age: Int) fun main(args: Array<String>) { val people = listOf(Person("Alice", 29), Person("Bob", 31)) println(people.map { it.name }) } ``` 注意:這里可以使用成員引用 ``` people. map(Person:name) ``` 可以輕松地把多次這樣的調用鏈接起來。例如,打印出年齡超過30 歲的人的名字: ``` people.filter { it .age > 30 }.map(Person::name)//Bob ``` #### map的源碼 ~~~ public inline fun <T, R> Iterable<T>.map(transform: (T) -> R): List<R> { return mapTo(ArrayList<R>(collectionSizeOrDefault(10)), transform) } ~~~ ~~~ public inline fun <T, R, C : MutableCollection<in R>> Iterable<T>.mapTo(destination: C, transform: (T) -> R): C { for (item in this) destination.add(transform(item)) return destination } ~~~ 在上面的代碼中,首先定義了map擴展方法,它的實現主要是依賴mapTo方法。**mapTo方法接收兩個參數,第1個參數類型是集合(MutableCollection),第2個參數為一個方法(transform: (T) -> R)),最終返回一個集合。在mapTo方法內部的實現其實很簡單,就是將transform方法產生的結果添加到一個新集合里面去,最終返回這個新的集合**。 通過使用map方法,我們就免去了for語句,而且也不用再去定義一些中間變量了。在Kotlin中,類似map的方法還有許多,它們在處理集合的時候也都非常實用
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看