我正在进行练习,我必须创建一个罗马到阿拉伯数字转换器。据我所知,下面的代码完全是犹太教,但是当我运行我的测试时,我总是收到一个错误。 Ruby认为第37行有一个未定义的方法或变量(注意下面的注释)。用于调用类中方法的Ruby语法
我想知道我的snytax是否关闭或者是否是其他东西。建议?
class ArabicNumeral
def replace_troublesome_roman_numerals(letters)
tough_mappings = {"CM" => "DCCCC", "CD" => "CCCC", "XC" => "LXXXX", "XL" => "XXXX", "IX"=> "VIIII", "IV" => "IIII"}
tough_mappings.each { |roman, arabic| letters = letters.gsub(roman, arabic) }
letters
end
def convert_and_add(letters)
digits = { "M" => 1000, "CM" => 900, "D" => 500, "C" => 100, "XC" => 90, "L" => 50, "XL" => 40, "X" => 10, "IX" => 9, "V" => 5, "IV" => 4, "I" => 1}
letters = letters.split("")
letters.inject(0) do |sum, letter|
arabic = digits[letter]
sum += arabic
end
end
def self.convert(letters)
roman_string = replace_troublesome_roman_numerals(letters) ###LINE 37!
arabic_number = convert_and_add(roman_string)
arabic_number
end
end
谢谢!我最终将所有方法都提升到了“课堂级别”。我弹出“自我”。在每个方法名称前,现在我所有的测试都通过了。 – 2012-04-25 20:42:48