나는 아랍어 숫자 변환기에 로마어를 만들어야하는 연습을하고 있습니다. 제가 말할 수있는 한, 아래의 코드는 완전히 정결합니다.하지만 테스트를 실행할 때 오류가 계속 발생합니다. 루비는 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
감사! 나는 모든 방법을 "수업 수준"으로 끌어 올렸습니다. 나는 "자아"를 터뜨렸다. 각 메소드 이름 앞에서 모든 테스트가 통과됩니다. –