【发布时间】:2012-07-06 23:51:26
【问题描述】:
使用 JodaTime,尝试将 List[LocalDate] 转换为 Tuple2[JodaTime, JodaTime],这样我就可以像这样进行多重分配:
val(expire, now) =
List(row.expireDate, new JodaDate) zip (_.toDateTimeAtStartOfDay.getMillis)
当然不能编译。是否有类似简洁的方法来完成上述操作?我知道我可以手动完成:
val(expire, now) =
(row.expireDate.toDateTimeAtStartOfDay.getMillis,
new JodaDate().toDateTimeAtStartOfDay.getMillis)
但这有点难看
【问题讨论】:
-
IMO 是一个相当夸张的问题。为什么要引入所有用于创建
List、函数字面量、迭代和模式匹配的冗余动态计算周期?我的意思是这一切的真正目的是什么?混淆一个简单的代码?那么这是一个糟糕的编码风格的好例子。问题再简单不过了:您只需要分配两个变量,因此分配它们:val expire = row.expireDate.toDateTimeAtStartOfDay.getMillis; val now = new JodaDate().toDateTimeAtStartOfDay.getMillis- 在此之前无需建造房屋并拆除它。 -
@NikitaVolkov, *cough*
-
@missingfaktor 这些是完全不同的东西。不过喜欢你的讽刺)
-
@NikitaVolkov 可以肯定地说,尽管服务器上承受着巨大的负载,但接受的答案不会将我的应用程序拖入爬行状态,咳嗽 ;-)
标签: list scala zip tuples variable-assignment