簡體   English   中英

Kotlin - 帶有類型不匹配的 forEach 嵌套列表

[英]Kotlin - Nested lists with forEach with TypeMismatch

我正在編寫一個將純文本 CSV 文件轉換為二維數組的函數,但我希望能夠在分隔符后放置一個空格。 我想要的返回類型是 List>。 我的邏輯是:

    val mapped = this.split(lineDelimiter).map { line -> line.split(delimiter).forEach { word -> word.dropWhile { char -> char == ' ' } } }

但是我得到一個類型不匹配:

Error:(17, 16) Kotlin: Type mismatch: inferred type is List<Unit> but List<List<String>> was expected

我已經在不使用 forEach 函數的情況下將其重寫為函數式,但這很丑陋。

下面表達式的結果是List<Unit>

this.split(lineDelimiter).map { line -> line.split(delimiter).forEach { word -> word.dropWhile { char -> char == ' ' } } }

看起來您想將文本拆分為行,然后將每一行拆分為多個部分,然后再更新每個單詞。 所以代碼會是這樣的:

this.split(lineDelimiter).map { line ->
    line.split(delimiter)
        .map { word ->
            word.dropWhile { char -> char == ' ' }
        }
}

主要變化: forEach是類似語句的運算符,它返回 Unit(並且應該做變異)。 map是類似表達式的運算符,它將List<X>轉換為List<Y>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM