[英]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.