【问题标题】:How can I store user defined data in a hash如何将用户定义的数据存储在哈希中
【发布时间】:2012-01-01 02:52:45
【问题描述】:

求助,我是菜鸟,只是需要一些关于这段代码的建议。我的大部分程序都在工作,这部分让我惊呆了,我想得到一个名字和密码。然后将名称设置为密钥,将密码设置为值。现在它必须是用户定义的。然后我必须能够再次提取该哈希信息。我认为 return 会起作用......这是我的代码

  def login_prompt
  vault = {}
     puts "WELCOME! please enter an existing username: "
     username = gets.chomp
     checkname = Noxread.new
     comparename = checkname.read_file
     comparename.keys.include?("#{username}") 
     if comparename == true
       puts "please enter your password: "
       password = gets.chomp
       vault[username]= password
       else puts "username already exists!! would you like to retry? (y/n)"
       case answer
     when /^y/
         login_prompt
     when /^n/
     exit
       end
     end
 end

所以应该收集信息。这是我合并它的代码和我从文件中提取的哈希。在 NoxRead 类中

require_relative '读取' 需要'csv'

 class Noxwrite
  attr_accessor :name :password  

  def initialize  
    @name = name 
    @password = password
  end

  def upsum

    x = Noxread.new
    y = x.read_file
    z = login_prompt
    y.merge(z) {|name, password| name + ',' + password}
    return y

   end

    def write_file

    ehash = upsum
    CSV.open("data.csv", "wb") do |csv|
    csv << ehash
    end

  end

end

【问题讨论】:

  • 没有实际运行你的代码,看起来login_prompt 应该返回你的哈希值。那是你的意图吗?如果是这样,你有什么问题?您是否试图找出从哈希中提取所有键值对的语法?
  • 另外,我标记了你的问题ruby,因为这段代码在我看来像 Ruby。如果我弄错了,请随时修复。您应该用您正在使用的语言或技术标记您的问题,以便熟悉该语言或技术的人看到您的问题。
  • 我不明白你的问题。尽管此代码可以改进一点,但它应该可以按照描述的方式工作。它返回一个哈希值,名称为唯一键,密码为对应值。
  • 很酷,是的,它是红宝石。对不起,我也是这个网页的新手 :) 我只是附加了我的代码,让我快速更新它..

标签: ruby hash return gets


【解决方案1】:

这段代码有什么问题。看起来不错,除了密码不应该像这样在开放文本中读取。

当你写类似的东西时

user_hash = login_prompt

user_hash 将拥有所需的哈希

{"username"=&gt;"password"}

【讨论】:

    猜你喜欢
    • 2012-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-17
    • 2018-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多