【发布时间】:2013-05-28 04:36:04
【问题描述】:
我正在学习 scala 并且喜欢提出自定义控制结构的能力,并且由于没有 using 结构来关闭资源,我认为编写一个会很方便。然后我从 David Pollak 的《Beginning Scala》一书中找到了这段代码。
using (Source.fromFile("file")) { source =>
println(source.mkString)
}
def using[A <: { def close() }, B](closable: A)(body: A => B): B =
try
body(closable)
finally
closable.close()
但我想知道是否有可能有类似的东西:
using (val source = Source.fromFile("file")) println(source.mkString)
【问题讨论】:
-
相关:No. 1 和 [No. 2](stackoverflow.com/questions/2207425/…)
-
AFAIK 不,因为您使用的是“来源:在不同的范围内,而不是您声明的范围内))但是您可以使用 for 理解来执行此操作(单子),以及类似 CPS 的样式您在上面发布的内容对我来说已经足够好了。
标签: scala functional-programming