我想创建一个目录,然后对目录做一些事情,最后删除它。我为此使用了括号成语。
val fs: FileSystem = ???
val path = ???
ZIO.bracket[Any, Throwable, Path, Unit](
acquire = ZIO{fs.mkdirs(path); path},
release = p => ZIO.succeed(fs.delete(p, true)),
use = p => ZIO{()})
删除目录显然是一个容易出错的操作。但release
功能必须始终成功。所以我必须使用ZIO.succeed
看起来错误的。
如何正确关闭资源?