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

Python014

为什么在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,这是我的见解

可以用class来做。

value.class

可以返回对象类型。  然后可以用

value.is_a?  类型(String, Integer 等等)

来查看具体类型。