我不确定这是否是描述我想要实现的目标的最佳标题,但我基本上有2个条件:
1.第一个月
required_file.early?
个
if current_file.early? && !required_file.early? do
...
end
if !current_file.early? && required_file.early? do
...
end
字符串
我想我已经看了很久了,但我想知道是否有更简单的方法来简化它,因为它们本质上是彼此的逆。我知道我可以做嵌套的如果,
current_file.early?
!required_file.early? && do_something
required_file.early? && do_something_else
型
但这也不是我想要的我想找个更优雅的如果有的话。
3条答案
按热度按时间qvsjd97n1#
也许是一个案例陈述:
字符串
kmb7vmvb2#
为所有可能的条件构建真值表,如下所示:
字符串
实际上有三种不同的结果:当第一条件为真时,当第二条件为真时,否则-无操作(noop)。
为了使代码清晰,最好将每个条件定义为具有有意义名称的单独方法。
型
是的,没有更短或优雅的方法来简化给定的条件对(就形式逻辑及其规则而言)。
mklgxw1f3#
您可以
select
是early?
的文件,并将它们与预期结果进行比较:字符串
其他可能的结果是
early_files == []
(没有文件是早期的)和early_files == [current_file, required_file]
(两个文件都是早期的)。case
语句也可以工作:(注意括号是必填项)型
在上面的两个例子中,
early?
在每个文件中只被调用一次。