【发布时间】:2024-01-23 19:40:01
【问题描述】:
我正在尝试创建一个 if/else 语句,它将用户的输入与存储在文本文件中的哈希中的所有名称键进行比较。这个要怎么写?
user_accts 是数组。
更新完整的 if/else 语句:
elsif 选择 == "2" 提出“======新客户====== 放“选择一个用户名:” 迅速的; 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
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}
【问题讨论】:
-
@user_accts包含什么?它看起来怎么样? -
user_accts 是数组还是哈希?
-
@user_accts 是一个包含哈希的数组
-
你能把你的文本文件解析成一个 ruby 对象吗?您是创建此文本文件还是依赖其他人?
-
这是我创建的文本文件。是否需要在文本文件中有这部分? --> @user_accts =