Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin FlatMapping列表和选项_Kotlin_Arrow Kt - Fatal编程技术网

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()
}