学习红宝石循环

时间:2012-02-04 21:46:32

标签: ruby

您好我正在浏览此循环并发送单词lines和字符串str的列表以匹配它。出于某种原因,它不打印eureka但是:

def search_array(str, lines)
    count = 0
    lines.each do |i|
        count +=1
        if str == i
            puts 'eureka'
        end
    end
end

FILE_LOC = "words.txt"
lines = File.readlines(FILE_LOC)
word = "hello"

search_array(word, lines)

2 个答案:

答案 0 :(得分:0)

当我这样做时,它适用于我:

lines = ["a", "b", "c"]

search_array("b", lines)

您是从文件中获取行还是其他类型的输入?如果是这样,它们是否以换行符结尾?如果是这样,请尝试:

if str == i.chomp

答案 1 :(得分:0)

这对我有用:

class Looper


  def search_array(str, lines)
    count = 0
    lines.each do |i|
        count +=1
        if str == i 
            puts 'eureka'
        end
    end
  end

end

looper = Looper.new

looper.search_array('fish', ['taco', 'horse', 'fish'])

我不确定您是如何运行程序的,但您可以将其复制并粘贴到文本编辑器中并将其另存为“LooperTest.rb”。然后打开终端并将目录更改为包含此文件的路径,并按以下方式运行:ruby LooperTest.rb