方法返回总是相同的结果

时间:2016-10-31 12:02:54

标签: ruby methods hash

我想创建一个代码来命名有机化学合成物。我在下面写的脚本是:

 class Molecule
carbon_number_name = { 1 => 'met', 2 => 'et', 3=> 'prop', 4 => 'but'}; bonds = {1 => 'ano', 2 => 'eno', 3 => 'ino'}
 x = Molecule.new
def molecule(hidrogen, carbon_numbers)
    @carbon_numbers = carbon_numbers
    @hidrogen = hidrogen
    if hidrogen =  2*(carbon_numbers)
     return 2
    elsif hidrogen = 2*(carbon_numbers) + 2
     return 1
    else 
     return 3
end
end
puts carbon_number_name[carbon_numbers] + bonds[x.molecule(hidrogen,carbon_numbers)]

方法"分子"并没有像预期的那样工作:尽管有条件,它仍然会回归" 2"错误在哪里?

1 个答案:

答案 0 :(得分:2)

您没有比较ifs语句中的元素,只是将它们分配给hidrogen。

要比较两个对象,请使用== method