Scala调用链接

Scala调用链接,scala,Scala,请你写: (ontDrugFormXml \ "VPID").headOption map (id => graph.addE(vertex, searchDmdVertex(graph, "VMP", id.text), "has")) orElse (throw new IllegalStateException("VPID required")) 或: 哪一个适合你? 无法在第一个选项中缀上获得答案。我总是对orElse使用中缀符号。如下: (ontDrugForm

请你写:

(ontDrugFormXml \ "VPID").headOption map
    (id => graph.addE(vertex, searchDmdVertex(graph, "VMP", id.text), "has")) orElse
    (throw new IllegalStateException("VPID required"))
或:

哪一个适合你?

无法在第一个选项中缀上获得答案。我总是对orElse使用中缀符号。

如下:

(ontDrugFormXml \ "VPID").headOption map { id =>
    graph.addE(vertex, searchDmdVertex(graph, "VMP", id.text), "has")
} orElse (throw new IllegalStateException("VPID required"))

《scala样式指南》要求采用函数参数的
map
等方法使用中缀符号。参数应与开口大括号位于同一行,例如
map
旁边
orElse
应该与它所取的值在同一行。

我总是使用后者。前者比1/2方法或DSL更难理解。有了这一个想法,我们就开始抱怨,并想给它添加一个点名orElse@Joan你说得对,它需要另一组括号。编辑。
(ontDrugFormXml \ "VPID").headOption map { id =>
    graph.addE(vertex, searchDmdVertex(graph, "VMP", id.text), "has")
} orElse (throw new IllegalStateException("VPID required"))