scala - 支撑或不支撑 : case statement block

标签 scala coding-style

我在这里提出一个具体问题(不是意见):是否有针对以下“case o:”的 scala 风格指南建议,以解决是否要避免(可选)使用大括号,或者是否可以接受有/没有大括号:

 def mycase(x : Int) = {
      x match {
      case 0 =>
        println("zero")
        println("blah zero")
      case 1 =>
        println("one")
      }

我最初并不相信它甚至会起作用(认为它可能会失败):但它确实进行了正确的突破:
scala> mycase(0)
zero
blah zero

我特别想知道是否有一个规范的答案(不是“我喜欢”等)。例如。对于 Java,Sun 很久以前就说过,将方法的初始大括号放置在同一行或下一行可能发生 - 两者都是可以接受的。在这种情况下有这么明确的答案吗?

更新 @acjay 在下面提供的答案提供了指向样式指南的链接。这里有一个特定的简介。

来自 http://docs.scala-lang.org/style/control-structures.html#curlybraces

case - Omit braces if the case expression fits on a single line. Otherwise, use curly braces for clarity (even though they are not required by the parser).

最佳答案

关于此的 Scala 风格指南 http://docs.scala-lang.org/style/control-structures.html#curly-braces似乎 已更改 ,它说

case - Always omit braces in case clauses.



实际上,在 IntelliJ 中编辑时,它会提醒用户在 case 块周围使用不必要的大括号。

因此,为避免给用户带来进一步的混淆,请对已接受的答案进行更正:)

关于scala - 支撑或不支撑 : case statement block,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23836619/

相关文章:

java - 如何将此 (github) 源代码制作成库/jar?

scala - Spark 指数移动平均线

java - Android程序设计错误

c# - OO 设计建议 - toString

c - bool : Direct assignment or conditional?

json - 在 scala/play 中解析 "stringified"JSON

scala - 在 Scala 中转换仿函数 (F[A] => G[A])(cats 或 scalaz)

scala - 在 Scala 中读取包含多行字符串的 CSV 文件

sql - 更清洁的手动更新多行的方式

CSS代码结构