7

ずっと前に、Ruby でこのトリックを見ました。する代わりに(たとえば)

if array1.empty? and array2.empty? and array3.empty?

一度にすべてのオブジェクトを呼び出して、最後に操作を追加することができます。

if %w(array1 array2 array3).each { |a| a.empty? }

でも、それよりも単純だったと思います... あるいは、それかもしれません。私は本当に知りませんが、それが私が調べることに興味がある理由です。ありがとう。

4

4 に答える 4

14

if [array1, array2, array3].all? { |a| a.empty? }

それがあなたが探しているものだと思います

于 2008-12-18T09:02:48.250 に答える
8

RailsまたはRuby1.9を使用している場合は、Symbol#to_procを使用できます。

[array1, array2, array3].all?(&:empty?)
于 2008-12-18T09:47:47.427 に答える
2

J Cooper はそのとおりですが、脚注を追加するだけです。

%w(array1 array2 array3) # => ["array1", "array2", "array3"]

%w は文字列を受け取り、それを空白で分割して文字列の配列を返します

于 2008-12-18T09:39:49.063 に答える
1

余談ですが、Symbol#to_proc はパフォーマンスの問題を引き起こす可能性があるため、読みやすさが重要な場合に使用してください。

于 2008-12-18T15:39:33.317 に答える