我正在學習scala,喜歡自定義控制結構的能力,並且由於沒有關閉資源的結構,所以我認爲寫一個結構會很方便。然後,我從David Pollak的書「Beginning Scala」中找到了這段代碼。在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)
相關:[序號1](http://stackoverflow.com/questions/2395984/scala-using-function)和[第2](http://stackoverflow.com/questions/2207425/what-automatic-resource-management-alternatives-exists-for-scala ) –
AFAIK不,因爲你使用「來源:在不同的範圍,而不是一個你宣佈它))但是,你可以使用理解來做到這一點(monads),並且你在上面發佈的類CPS風格對我來說看起來足夠好。 – vitalii