【发布时间】:2016-05-13 07:40:33
【问题描述】:
代码如下:
val prices = cars map (car => {
val price = car.getPrice
Logger.info(s"Car price is $price")
price
})
在上述情况下使用括号很好,或者有严格的英制使用花括号,如下所示:
val prices = cars map { car => {
val price = car.getPrice
Logger.info(s"Car price is $price")
price
}}
我不喜欢两个花括号,更喜欢({ ... }) 样式,但另一位开发人员警告说内部函数有副作用(记录消息)并且是 3 行代码,因此它必须与两个花括号一起使用并且整个 Scala 社区在这些情况下都使用双花括号。
我搜索了 scala 代码并找到了this one:
def failed: Future[Throwable] =
transform({
case Failure(t) => Success(t)
case Success(v) => Failure(new NoSuchElementException("Future.failed not completed with a throwable."))
})(internalExecutor)
它有多行但没有副作用,这里使用了我很好的符号({...})。当代码包含副作用时是否应该更改它?我个人不喜欢这样,即使整个社区都说“是的,使用双花括号!” :)
【问题讨论】:
标签: scala