Kotlin FlatMapping列表和选项
我无法使用Kotlin FlatMapping列表和选项,kotlin,arrow-kt,Kotlin,Arrow Kt,我无法使用t->Option将ListKOf平面映射 e、 g 报告Required(Int)->ListKOf。找到(Int)->选项 要使其编译,我需要执行以下操作: listOf(1,2,3).k().flatMap { i -> val opt = if (i % 2 == 0) Some(i) else None opt.toList().k() } 是否可以像前一个例子那样编写函数?@dyukha上面的回答是最简洁的,但要具体回答您的问题:flatMap在单个一元类型
t->Option
将ListKOf
平面映射
e、 g
报告Required(Int)->ListKOf。找到(Int)->选项
要使其编译,我需要执行以下操作:
listOf(1,2,3).k().flatMap { i ->
val opt = if (i % 2 == 0) Some(i) else None
opt.toList().k()
}
是否可以像前一个例子那样编写函数?@dyukha上面的回答是最简洁的,但要具体回答您的问题:
flatMap
在单个一元类型中运行;也就是说,如果要在列表上调用flatMap
,则需要从提供给flatMap
的函数中返回列表
;如果要在选项上调用flatMap
,则需要从提供给flatMap
的函数中返回选项
;最接近的代码(不使用.mapFilter()
)是一种返回零个或一个元素的列表
,而不是一些(x)
或无
?
listOf(1,2,3).k().flatMap { i ->
val opt = if (i % 2 == 0) Some(i) else None
opt.toList().k()
}