【发布时间】:2011-04-29 03:46:27
【问题描述】:
在 Rails 中,可以使用:
returning Person.create do |p|
p.first_name = "Collin"
p.last_name = "VanDyck"
end
避免这样做:
person = Person.create
person.first_name = "Collin"
person.last_name = "VanDyck"
person
我认为前一种方式更简洁,重复性更少。我发现自己在我的 Scala 项目中创建了这个方法:
def returning[T](value: T)(fn: (T) => Unit) : T = {
fn(value)
value
}
我知道它的实用性有限,因为对象倾向于不可变,但例如使用 Lift,在 Mapper 类上使用此方法效果很好。
是否有我不知道的用于“返回”的 Scala 模拟?或者,在 Scala 中是否有类似的方法可以更惯用?
【问题讨论】:
标签: ruby-on-rails scala scala-2.8