我正在尝试创建一个 if/else 语句,它将用户的输入与存储在文本文件中的哈希中的所有名称键进行比较。我怎么写这个?
user_accts 是数组。
更新完整的 if/else 语句:
elsif choice == "2" puts "====== NEW CUSTOMER ======" puts "Choose a username:" 提示;login_name = 获取.chomp
#file.open("cust_accts.txt", "r")
#if @user_accts.map { |acct| acct["name"]}.include?(login_name)
if @user_accts.any? {|acct| acct["name"] == login_name }
puts "Sorry, that username has already been taken"
elsif
puts "Choose a password:"
prompt; login_password = gets.chomp
user_accts << create_account(login_name, login_password)
File.open("cust_accts.txt", "a") { |file| file.puts(user_accts)}
end
原始 if/else 语句:
if login_name == #??? @user_accts.has_key?(login_name) ???
puts "Sorry, that username has already been taken"
elsif
puts "Choose a password:"
prompt; login_password = gets.chomp
user_accts << create_account(login_name, login_password)
File.open("cust_accts.txt", "a") { |file| file.puts(user_accts)}
end
这正是使用以下命令输入到 cust_accts.txt 文件的内容:
user_accts << create_account(login_name, login_password)
File.open("cust_accts.txt", "a") { |file| file.puts(user_accts)}
cust_accts.txt
{"name"=>"Tom", "password"=>"popcorn", "balance"=>0}
{"name"=>"Avril", "password"=>"chain", "balance"=>0}