Ruby on rails 用于了解特定方法的所有数组元素是否都返回true的语法糖?

Ruby on rails 用于了解特定方法的所有数组元素是否都返回true的语法糖?,ruby-on-rails,ruby,arrays,Ruby On Rails,Ruby,Arrays,在我的Ruby程序中,我有一个由五个字符串组成的数组,我想检查数组中的每一个元素是否符合给定的要求,例如: a = ['', '', '', ''] a.inject(:blank?) # Will return true if (and only if) all elements of a are blank 我问这个问题是因为Ruby有一个相当大的标准API,其中包含大量预先编写的语法糖,我想知道,也不想重新发明这些语法糖。有一种非常简洁的方法: array.all? &:blan

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

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

我问这个问题是因为Ruby有一个相当大的标准API,其中包含大量预先编写的语法糖,我想知道,也不想重新发明这些语法糖。

有一种非常简洁的方法:

array.all? &:blank?

学习并学习如何使用Ruby,你很快就会说出最悦耳的Ruby方言。

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

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

这相当于

a.inject{ |sum,i|
  sum && i.blank?
}

谢谢,这正是我想要的:请注意,
blank?
不是Ruby核心的一部分,它来自ActiveSupport的核心扩展(包含在Rails中)。一般来说,如果您自己的项目恰好提供了相关的问题答案,请发布它们。meta上有很多关于这方面的讨论,如果你想了解更多关于礼仪的信息,请阅读这些讨论。