创建一个接收用户输入的方法 - 如果所述输入包含来自预定数组的任何单词,则打印出“成功”一词。否则,如果输入不包含该数组中的单词,则会输出单词“failure”。
我的理想是创建一个场景,我可以使用尽可能多的元素填充数组,并且该方法将在决定如何对用户输入作出反应时始终引用该数组。
然而,当我运行它时,我收到一条错误消息,指出“没有将Array隐式转换为String。”
我的代码如下。感谢任何和所有的帮助!感谢。
def hello
word_bank = ["hello", "hi", "howdy"]
print "Say a word: "
greeting = $stdin.gets.chomp.to_s
if greeting.include?(word_bank[0..2])
puts "success!"
else
puts "failure."
end
end
hello
答案 0 :(得分:3)
include?
是数组的方法。
word_bank = ["hello", "hi", "howdy"]
print "Say a word: "
greeting = gets.chomp
if word_bank.include?(greeting)
puts "success!"
else
puts "failure."
end
puts [1,2,3].include?(1) # true
puts [1,2,3].include?(4) # false
如果word_bank
很大,出于性能原因,我们应该使用集合而不是数组。
require 'set'
word_bank = Set.new(["hello", "hi", "howdy"])
答案 1 :(得分:0)
这就是我解决这个问题的方法,但我还没有对它进行过测试,但它应该有效。
def hello
word_bank = ['hello', 'hi', 'howdy']
print 'Say a word: '
greeting = $stdin.gets.chomp.to_s
word_bank.each do |w|
w == greeting ? (puts 'success') : (puts 'failure')
end
end