Scala调用链接

时间:2014-05-21 23:27:01

标签: scala

你会写:

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

或:

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

哪一个适合你?
无法在http://docs.scala-lang.org/style/method-invocation.html

上找到答案

2 个答案:

答案 0 :(得分:2)

像这样:

(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 :(得分:0)

Infix,第一个选择。我总是在orElse中使用中缀符号。