3

在我的 Ruby 程序中,我有一个由五个字符串组成的数组,我想检查该数组的每个元素是否符合给定的要求,例如:

a = ['', '', '', '']
a.inject(:blank?) # Will return true if (and only if) all elements of a are blank

我问这个问题是因为 Ruby 有一个相当大的标准 API 和很多预先编写的语法糖,我想知道并且不想重新发明。

4

2 回答 2

15

有一个非常简洁的方法:

array.all? &:blank?

学习Enumerable并学习如何使用Enumerators,你很快就会说最令人愉快的 Ruby 方言。

于 2012-04-16T18:44:08.523 回答
0

只是另一种方式:如果您有 String#to_proc (搜索它,因为我不会发布我自己的存放网站以防被视为广告),您可以使用类似的方式:

a.inject(&'&& $1.blank?')

这相当于

a.inject{ |sum,i|
  sum && i.blank?
}
于 2012-04-16T19:41:20.753 回答