【问题标题】:scala: whether the following two are the samescala:以下两个是否相同
【发布时间】:2018-05-15 21:16:43
【问题描述】:

代码片段 1

maps foreach { case (k, v) =>
  // do something
}

代码片段 2:

maps foreach { 
  case (k, v) => {
    // do something
  }
}

我是 scala 的新手。只是想知道上面两段代码是否相同?哪个更好?

谢谢

【问题讨论】:

  • 在这种情况下它们是相同的(仅一种情况)。如果只有一个案例,我个人更喜欢第一个,如果有多个案例,我个人更喜欢第二个。
  • 我也更喜欢第一个。

标签: scala function-literal


【解决方案1】:

是的,这两段代码是一样的。

但不幸的是,他们都没有考虑到Scala style guide 的建议。

  1. 省略点并使用空格is not recommended

  2. Always omit braces in case clauses.

  3. case 可能出现在同一行或下一行:这取决于// do something 的内容。

所以原来的代码应该格式化为

maps.foreach {
  case (k, v) => // do something
}

【讨论】:

  • 至于第3点,你的意思是case (k, v) =>// do something可能在同一行?
  • 是的,如果// do something 简洁明了,则此示例中的所有内容都可能位于同一行。
猜你喜欢
  • 2011-01-28
  • 1970-01-01
  • 2018-07-21
  • 1970-01-01
  • 1970-01-01
  • 2012-09-30
  • 2012-04-09
  • 2014-01-30
  • 2014-09-12
相关资源
最近更新 更多