我正在進行練習,我必須創建一個羅馬到阿拉伯數字轉換器。據我所知,下面的代碼完全是猶太教,但是當我運行我的測試時,我總是收到一個錯誤。 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