我定義「使用」功能如下:斯卡拉:「使用」功能
def using[A, B <: {def close(): Unit}] (closeable: B) (f: B => A): A =
try { f(closeable) } finally { closeable.close() }
我可以用它這樣的:
using(new PrintWriter("sample.txt")){ out =>
out.println("hellow world!")
}
現在我很好奇如何定義「使用'功能採取任意數量的參數,並能夠分別訪問它們:
using(new BufferedReader(new FileReader("in.txt")), new PrintWriter("out.txt")){ (in, out) =>
out.println(in.readLIne)
}
重複:http://stackoverflow.com/questions/2207425/what-automatic-resource-management-alternatives-exists- for-scala – retronym
在'try'內部執行'closeable.close()',或者你可以在'f(可關閉)'中屏蔽異常。 –
相關http://stackoverflow.com/q/7602804/243233 – Jus12