我一直在学习Ruby Koans,现在到了about_triangle_project.rb这个部分,你需要编写一个名为triangle的方法。
这些项目的代码可以在这里找到:
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
我知道从Chris Pine的"Learn to Program"中阅读到,做事情总有多种方法。虽然上面的代码可以工作,但我不禁想到是否有更优雅的方法来实现这一点。是否有人愿意提供他们的想法,如何使这种方法更有效和紧凑?
另一件让我好奇的事情是,为什么在确定等边三角形时,我无法创建条件(a == b == c)。这是等边三角形的证明,但Ruby不支持这种语法。是否有一个简单的解释?
==
是一个操作符,它接受两个值(就像*
或/
一样)。它返回true
或false
。为了避免混淆,这种写法是不合法的(例如1 == 1 == 1
将被计算为false
,因为它等同于(1 == 1) == 1
)。 - glebm