首页 > 解决方案 > 如果 Ruby 中的程序创建散列并将这些散列保存在另一个文件中,它会是什么样子?

问题描述

我对 Ruby 编程真的很陌生,我在互联网上找不到任何与创建哈希并将它们存储在另一个文件中的程序相关的内容。.rb 文件的代码看起来像什么?

标签: rubysave

解决方案


通常Ruby 哈希不会直接写入文件。我们使用 JSON 或 YAML 等序列化格式,以便文件可以被除 Ruby 之外的其他编程语言和工具读取。

让我们以 JSON 为例,因为它是最常见的。我们可以轻松地从 JSON 读取/写入

require 'json'

path = "path.json"
hsh = { a: 1, b: 2 }

# Write to the file

File.open(path, "w") do |file|
  file.write hsh.to_json
end

# Read from the file

hsh2 = JSON.parse(File.read(path))

# let's print them out for inspection

print hsh
# => {:a=>1, :b=>2}

print hsh2
# => {"a"=>1, "b"=>2}

如您所见,哈希在技术上并不相同,这是因为 JSON 没有符号数据类型(顺便说一下,YAML 有)。但它们确实包含相同的数据。


请注意,作为对您对此处目标的评论的回应。您要求的是人类可读的数据序列化格式,幸运的是 JSON 和 YAML 都是人类可读的,并且一直用于此目的。

要使用 YAML,只需将前面示例中的and调用分别require 'yaml'替换为and即可。YAML 默认情况下非常易于阅读,我会搜索有关其语法的教程以熟悉它。to_jsonJSON.parseto_yamlYAML.load

to_json默认情况下不那么可读,因为它将所有内容都转储在同一行,但您可以使用JSON.pretty_generate(hsh)它,它会使事情变得更好。


推荐阅读