bca*_*cat 10

您的代码询问以下语句的真实性:"对于a空列表中的所有元素,a包括该字符'_'." 因为空列表中没有元素,所以该语句为true.(这在逻辑中被称为空洞真理.)如果您试图找到一种方法使该表达式为假,则可能更容易理解.这将要求在空列表中至少有一个包含的元素'_'.但是,空列表为空,因此不存在这样的元素.因此,声明不能有意义地虚假,所以它必须是真的.


Nab*_*abb 7

all?将数组的每个元素传递给块{|a| a.include?('_')},true如果块没有返回false或者返回nil任何元素,则返回.由于阵列没有任何元素,块不会返回falsenilall?返回true.