class Person
def initialize(name)
set_name(name)
end
def name
@first_name + ' ' + @last_name
end
private
def set_name(name)
first_name, last_name = name.split(/\s+/)
set_first_name(first_name)
set_last_name(last_name)
end
def set_first_name(name)
@first_name = name
end
def set_last_name(name)
@last_name = name
end
end
male_names = %w{George Emmanuel Bruno Connel Cletus Samuel}
female_names = %w{Joy Stella Patience Rita Rachael Ruth Elizabeth}
puts "Please input your two names:"
n = gets
p = Person.new(n)
full_name = n.scan(/\w+/)
names = full_name.select do |name|
if male_names.include?(name)
nn=name
na = "Mr "+nn
puts "Welcome #{na}"
elsif female_names.include?(name)
na = "Ms "+name
puts "Welcome #{na}"
else puts "name not found!\nAre you sure you exist?"
end
end
如果我進入Connel Samuel
它將打印:圖了Ruby的字符串
歡迎康內爾先生 歡迎塞繆爾先生
我只是它想打印:
歡迎Connel Samuel先生。
我會考慮你的變量更好的命名約定的代碼不如此可讀。此外,您未能真正使用Person類的實例(您只是在字符串輸入上進行掃描)。 – Tommyixi