【发布时间】: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。如果我弄错了,请随时修复。您应该用您正在使用的语言或技术标记您的问题,以便熟悉该语言或技术的人看到您的问题。 -
我不明白你的问题。尽管此代码可以改进一点,但它应该可以按照描述的方式工作。它返回一个哈希值,名称为唯一键,密码为对应值。
-
很酷,是的,它是红宝石。对不起,我也是这个网页的新手 :) 我只是附加了我的代码,让我快速更新它..