Я работаю через Ruby Koans и перешел к about_triangle_project.rb, в котором вам необходимо написать код для метода, треугольника.
Код для этих элементов можно найти здесь:
https://github.com/edgecase/ruby_koans/blob/master/koans/about_triangle_project.rb
https://github.com/edgecase/ruby_koans/blob/master/koans/triangle.rb
В triangle.rb я создал следующий метод:
def triangle(a, b, c)
if ((a == b) && (a == c) && (b == c))
return :equilateral
elsif ((a == b) || (a == c) || (b == c))
return :isosceles
else
return :scalene
end
end
Я знаю, что, читая Криса Пайн "Учись программировать", всегда есть много способов сделать что-то. Хотя приведенный выше код работает, я не могу не думать, что есть более элегантный способ сделать это. Кто-нибудь может пожелать предложить свои мысли о том, как сделать такой метод более эффективным и компактным?
Еще одна вещь, о которой мне интересно, - почему для определения равностороннего треугольника мне не удалось создать условие (a == b == c). Это доказательство равностороннего треугольника, но Ruby ненавидит синтаксис. Есть ли легкое объяснение, почему это?