Groovy 多个资源关闭

Groovy multiple resource closure

我正在使用 Groovy 的资源闭包功能,想知道是否可以创建一个管理两个资源的闭包。例如,如果我有以下两个单独的闭包,是否可以创建一个管理这两个闭包的闭包?或者我真的必须嵌套闭包吗?

new File(baseDir, 'haiku.txt').withWriter('utf-8') { writer ->
    writer.writeLine 'Into the ancient pond'
}

new Scanner(System.in).with { consoleInput ->
    println consoleInput.nextLine()
}

没有。语法 method(arg) {}method(arg, {}) 的替代语法,因此,您可以这样做:

fn = { writer ->
    writer.writeLine 'Into the ancient pond'
}

new File(baseDir, 'haiku.txt').withWriter('utf-8', fn) 

new Scanner(System.in).with(fn)

请注意,闭包必须包含两个方法调用的预期代码。