为什么

[].all?{|a| a.include?('_')}

返回true吗?

最佳答案

您的代码询问以下语句的真实性:“对于空列表中的所有元素aa都包含字符'_'。”因为空列表中没有元素,所以该语句为true。 (在逻辑上将其称为vacuous truth。)如果您尝试寻找一种使该表达式为假的方法,可能会更容易理解。这将需要在空列表中至少包含一个不包含'_'的元素。但是,空列表为空,因此不能存在任何此类元素。因此,该语句不能有意义地为假,因此它必须为真。

关于ruby - 为什么[] .all?{| a | a.include? ('_')}返回true吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4075148/

10-16 18:43