Scala选项[String]映射在Iterable中转换
为什么要编译:Scala选项[String]映射在Iterable中转换,scala,option,implicit-conversion,iterable,Scala,Option,Implicit Conversion,Iterable,为什么要编译: def foo() : Iterable[URI] = { Some("") .map(URI.create) } 有一个直接在选项上定义的,它将所有选项[A]转换为具有零或一个元素的Iterable[A] 下面是一段短得多的代码片段,它演示了这种有点意外的行为: (Option(42): Iterable[Int]) 它会悄悄地将选项转换为列表,在这种情况下会生成一个列表(42)它是java.net.URI?它不会“变成Iterable[URI]”。表达式S
def foo() : Iterable[URI] = {
Some("")
.map(URI.create)
}
有一个直接在选项上定义的
,它将所有选项[A]
转换为具有零或一个元素的Iterable[A]
下面是一段短得多的代码片段,它演示了这种有点意外的行为:
(Option(42): Iterable[Int])
它会悄悄地将
选项
转换为列表
,在这种情况下会生成一个列表(42)
它是java.net.URI
?它不会“变成Iterable[URI]
”。表达式Some(“path”).map(java.net.URI.create)
提供了一个选项[java.net.URI]
。不清楚你在问什么。是的,我想映射到uri并检查它是否存在,然后映射到其他东西。你的问题不能以你在这里发布的形式重现。只要这是导入java.net.uri
,它就应该创建选项[java.net.uri]
。的返回类型是URI
本身-