gpt4 book ai didi

ruby - 使用 YAML::load 时是否需要关闭文件?

转载 作者:太空宇宙 更新时间:2023-11-03 17:26:42 24 4
gpt4 key购买 nike

像下面这行代码

sites = YAML::load(File.open(SITESPATH))

是否有必要改成

File.open(SITESPATH) do |file|
sites = YAML::load(file)
end

只是为了确保文件已关闭?

最佳答案

是的,您应该关闭文件,所以您的第二个示例是正确的。

作为旁注,请记住 sites 变量在 block 外是不可见的,除非您已经在 block 之前创建了它。

因为IO.open,当用 block 调用时,返回 block 的值,你可以使用:

sites = File.open(SITESPATH) {|file| YAML::load(file) }

关于ruby - 使用 YAML::load 时是否需要关闭文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7308559/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com