我有一个指向空.yml文件的文件对象。当我尝试加载此文件时,YAML.load我得到false的不是空哈希。这是预期的行为吗?
file.read正在""按预期返回。
我有一个指向空.yml文件的文件对象。当我尝试加载此文件时,YAML.load我得到false的不是空哈希。这是预期的行为吗?
file.read正在""按预期返回。
那可能是因为YAML.parse("")返回false。所以我想这是预期的行为。
您可以修改load_file功能如下:
代替
data_hash = YAML.load_file(yaml_file)
至
data_hash = YAML.load_file(yaml_file, {})
因此,当YAML向load_file函数提供空文件时,它将返回一个空哈希(我的 Ruby 版本是 Ruby 2.4.0p0)
示例:空文件:/Users/batman/config/config.yml
 irb:
    2.4.0 :001 > require 'yaml'
    => true 
    2.4.0 :006 > YAML.load_file("/Users/batman/config/config.yml",{})
    => {}