【发布时间】:2014-06-17 12:47:02
【问题描述】:
我正在尝试创建一个简单的银行账户程序来练习一些 Ruby。这个想法是创建一个哈希数组。但是,我想使用用户输入来创建一个新的哈希值,无论是创建标题还是简单地为 user1 或 user2 之类的条目编号。
如果我使用将用户名、密码和余额全部存储在哈希中的设置,如下所示:
jhip = {
:pin => 1234,
:balance => 1000000
}
jdog = {
:pin => 2345,
:balance => 1000
}
accounts = [
jhip,
jdog
]
我觉得在数组中找到正确的用户名和/或告诉用户他们的名字已经被选择比我使用这样的设置要容易得多:
user1 = {
:username => "jhip",
:pin => 1234,
:balance => 1000000
}
user2 = {
:username => "jdog",
:pin => 2345,
:balance => 1000
}
accounts = [
user1,
user2
]
这个问题的真正意义在于让用户输入成为哈希的标题。我知道创建这样的哈希的符号:
h = hash.new #or
hash = {}
但我不知道如何将输入用作标题。当我将输入存储为变量时,我可以使用该变量:
@username = gets.chomp
@username.to_i #or any method
但如果我尝试使用变量名创建哈希,我会覆盖输入。
@username = {} #no more using the response from gets
我想我要找的是类似的东西
@username = gets.chomp
@username.to_s => (some sort of code or command I'm unaware of) {}
然后我可以将键和值对推送到散列中。我不知道我是否可以使用块来完成此操作或其他操作。我对此仍然很陌生,所以如果我对这个问题的咀嚼超出了我的咀嚼能力,我深表歉意。感谢您的帮助。
【问题讨论】:
标签: ruby arrays hash block dynamic-arrays