为什么在ruby中,[].all?{|i| i==1} 的结果为true?

Python024

为什么在ruby中,[].all?{|i| i==1} 的结果为true?,第1张

.all?这是一个ruby方法,他的返回结果只有两个,true或者false,判断的是数组中每一个元素都是true的就返回true,只要有一个不是true就返回false,如[nil,22].all?返回的就是false。还有就是判断数组遍历运算过程中,每一个结果是不是true,如[1,2,3].all?{|w| w >1}这个的结果就是false。

你的例子中,作为判断对象的是一个空数组,不执行后面的代码,也没有一个元素是false的,所以返回的是true,这是我的见解

ruby

'sss'.nil? 返回值false, nil.nil?的返回值true;

rails

present?是rails的方法,ruby中没有这个方法,''.present? 返回值false, nil.present?返回值也是false,'sss'.present? 返回值true