关于If / Elsif函数中的Ruby流控制?

时间:2016-08-22 00:33:56

标签: ruby

请耐心等待我,因为我对学习Ruby非常新。不完全确定如何解释我的问题,但它是关于我编写此代码的顺序。

output = Hash.new
input.each do |word|
    dictionary.each do |reference|
        if (word.include? reference) && output[reference] = nil
            output[reference] = 1
        elsif word.include? reference
            output[reference] += 1
        end
    end     
end

上面的代码返回错误,而下面的代码按照我希望的方式工作。基本上,我的问题是为什么一个工作而不是另一个?从逻辑上讲,我将它们解释为几乎相同。

output = Hash.new
input.each do |word|
    dictionary.each do |reference|
        if (word.include? reference) && output[reference] != nil
            output[reference] += 1
        elsif word.include? reference
            output[reference] = 1
        end
    end     
end

1 个答案:

答案 0 :(得分:2)

你写了一个作业:

output[reference] = nil

你想要comparison

output[reference] == nil