【发布时间】:2025-12-07 08:40:02
【问题描述】:
我有三个值(foo、bar、bad),我根据哪个值传递给一个函数,我想使用另外两个。
例如,调用self.method(foo) 会导致类似foo 未定义的情况。
def method
self.foo = 180 - self.bar - self.bad
end
我可以通过简单的 if-elsif-else 设置来做到这一点,但有没有更好(更惯用)的方法?
为清晰起见更新:
以下是生产中的一个建议:
def solve_angles(missing)
angles = 180 - [ A, B, C ].reject { |e| e == missing }.inject(:+)
end
可以通过@triangle.solve_angles(self.C) 甚至'@triangle.solve_angles("C") 调用。
【问题讨论】:
-
这完全取决于;决策是基于价值的,还是完全依赖于符号?
-
展示你到目前为止所写的内容总是有帮助的,而不是让我们其他人尝试可视化你的代码并改进它。
-
我已经更新了代码,希望能更清楚地理解它。它本质上是在尝试求解三个角,其中两个已知而第三个缺失,但所有三个角的总和必须为 180。
标签: ruby if-statement control-flow