Scala 如何调用getOrElse+;弗雷奇
假设我有一个case类,上面有选项[Map[String,String],我想迭代抛出它 此代码在Scala2.13中工作,但在Scala2.11中构建失败Scala 如何调用getOrElse+;弗雷奇,scala,scala-collections,Scala,Scala Collections,假设我有一个case类,上面有选项[Map[String,String],我想迭代抛出它 此代码在Scala2.13中工作,但在Scala2.11中构建失败 some.getOrElse(None).foreach { case (key: String, value: String) => if true doSomething } 它表示,无法解析每个 如何修复此问题?它在2.13(或2.12)上无法编译,因此您的代码显然存在问题 我认为你想做的是: some.map(_.map
some.getOrElse(None).foreach {
case (key: String, value: String) =>
if true doSomething
}
它表示,无法解析每个
如何修复此问题?它在2.13(或2.12)上无法编译,因此您的代码显然存在问题 我认为你想做的是:
some.map(_.map {
case (key: String, value: String) =>
???
})
如果
some
是None
,它将返回None
,否则它将调用map
上的map
,并在some(?)
中返回结果,因为它在2.13(或2.12)上没有编译,所以代码显然存在问题
我认为你想做的是:
some.map(_.map {
case (key: String, value: String) =>
???
})
如果
some
是None
,它将返回None
,否则它将调用map
上的map
,并在some(?)
中返回结果,为什么不默认为空映射
some.getOrElse(Map.empty()).foreach {
case (key: String, value: String) =>
if true doSomething
}
为什么不默认为空映射
some.getOrElse(Map.empty()).foreach {
case (key: String, value: String) =>
if true doSomething
}
some.getOrElse(None)
相当于什么都不做。如果选项为空,会发生什么?什么都不做?另外,您确定想要一个forach
可能是一个map
或其他高级函数更好?为什么一些.getOrElse(None)相当于什么都不做?一些不是一些()对象是我自己的类。我想避免None。get-exeption-如果选项包含None-返回None。否则迭代抛出映射。getOrElse
获取值或默认值,如果它是None,那么是的,这实际上与什么都不做不一样,更糟糕的是,因为你会使用Any类型的值。也许你想要的是opt。map{map=>map.map{case(key,value)=>???}
谢谢!你说得对。some.getOrElse(无)
相当于什么都不做。如果选项为空,会发生什么?什么都不做?另外,您确定要使用forach
可能是map
或其他高级函数更好?为什么有些.getOrElse(None)相当于什么都不做?有些不是some()对象是我自己的类。我想避免None。get-exeption-如果选项包含None-返回None。否则迭代抛出映射。getOrElse
获取值或默认值,如果它是None,那么是的,这实际上与什么都不做不一样,更糟糕的是,因为你会使用Any类型的值。也许你想要的是opt。map{map=>map.map{case(key,value)=>???}
谢谢!你说得对。谢谢!它确实有效,但我不明白为什么不编译?code:谢谢!它确实有效,但我不明白为什么不编译?code:这是我的要求。Idk为什么,但在Scala 2.13中我写了getOrElse(无).foreach和它是有效的。这就是我要求的。Idk为什么,但在Scala 2.13中,我写了getOrElse(无)。foreach和它是有效的。