将哈希值保存到Ruby上
发布时间:2020-12-16 19:35:00 所属栏目:百科 来源:网络整理
导读:我只是在编程方面迈出了第一步.我刚刚在Code Academy完成了另一堂课.这次我被要求创建一个小电影目录. 这是我的问题:如何在文件而不是自己的代码中保存/加载带有电影标题和评级的哈希? 以下是代码现在的样子(用葡萄牙语写几句,但你可能会忽略它: movies =
我只是在编程方面迈出了第一步.我刚刚在Code Academy完成了另一堂课.这次我被要求创建一个小电影目录.
这是我的问题:如何在文件而不是自己的代码中保存/加载带有电影标题和评级的哈希? 以下是代码现在的样子(用葡萄牙语写几句,但你可能会忽略它: movies = { Memento: 3,Primer: 4,Ishtar: 1 } puts "O que você gostaria de fazer?" puts "-- Digite 'add' para adicionar um filme." puts "-- Digite 'update' para atualizar um filme." puts "-- Digite 'display' para mostrar todos os filmes." puts "-- Digite 'delete' para deletar um filme." choice = gets.chomp.downcase case choice when 'add' puts "Que filme você gostaria de adicionar?" title = gets.chomp if movies[title.to_sym].nil? puts "Qual a nota? (Digite um número de 0 a 4.)" rating = gets.chomp movies[title.to_sym] = rating.to_i puts "#{title} foi adicionado com uma nota de #{rating}." else puts "Esse filme já existe na lista! Sua nota é # {movies[title.to_sym]}." end when 'update' puts "Que filme você gostaria de atualizar?" title = gets.chomp if movies[title.to_sym].nil? puts "Filme n?o encontrado!" else puts "Qual é a nova nota? (Digite um número de 0 a 4.)" rating = gets.chomp movies[title.to_sym] = rating.to_i puts "#{title} foi atualizado,sua nova nota é #{rating}." end when 'display' movies.each do |movie,rating| puts "#{movie}: #{rating}" end when 'delete' puts "Que filme voce gostaria de deletar?" title = gets.chomp if movies[title.to_sym].nil? puts "Filme n?o encontrado!" else movies.delete(title.to_sym) puts "#{title} foi deletado." end else puts "Desculpa,n?o entendo o que você quer." end 如您所见,目录包含在代码开始时的哈希值中,但它不保存信息.我怎么能把它存放好呢? 感谢你们! 解决方法
如果它们是简单的哈希值,那么YAML文件可能是一种简单的方法.
require 'yaml' # write hash out as a YAML file movies = { Memento: 1,Ishtar: 1 } File.write('movies.yml',movies.to_yaml) # read back in from file from_file = YAML.load_file('movies.yml') # use it from_file[:Memento] # => 1 from_file[:Primer] # => 4 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |