я определил «используя» функцию следующим образом:Scala: «с помощью» функции
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
Сделайте 'closeable.close()' внутри 'try', или вы можете маскировать исключения в' f (closeable) '. –
Связанный http://stackoverflow.com/q/7602804/243233 – Jus12