【发布时间】:2018-01-05 20:30:15
【问题描述】:
我有一些“旧”端点可以返回我正在寻找的数据。
def mainCall(id): Data {
maybeMyDataInEndpoint1(id: UUID): DataA
maybeMyDataInEndpoint2(id: UUID): DataB
maybeMyDataInEndpoint3(id: UUID): DataC
}
-
如果没有找到
DataX,则可以返回null - 每种方法的返回类型都不同。有一个
convert方法可以将每个DataX转换为统一的Data。 - 端点不是 Scala 风格的
什么是最佳 Scala 方法来按顺序评估这些方法调用,直到获得所需的值?
在伪中,我会做类似的事情:
val myData = maybeMyDataInEndpoint1 getOrElse maybeMyDataInEndpoint2 getOrElse maybeMyDataInEndpoint3
【问题讨论】:
-
如果您的任何调用可能返回
null,为什么不使用Option来帮助排序处理? 3 种不同的DataX是否有 3 种不同的convert方法,或者单个convert是否适用于不同的DataX类型? -
“没有选项可用于包装...”是什么意思???您在询问“最好的 scala 方法”。
OptionIS scala ... -
@Dima 你绝对正确。对不起,我的措辞不好。当然 Option 是 Scala :) 我的意思是端点不能返回 Option。这就是为什么我稍后在伪...中使用getOrElse
-
Option(function)那么呢? -
@Dima 还不够
标签: scala