No, non esiste una stenografia per questo. Si potrebbe definire un metodo:
def really_empty?(x)
x.strip.empty?
end
e utilizzare method
:
array.reject(&method(:really_empty?))
o utilizzare un lambda:
really_empty = ->(x) { x.strip.empty? }
array.reject(&really_empty)
ma io non lo chiamerei uno di quelli meglio a meno che non si dispone di un utilizzare per really_empty?
in un numero di punti sufficiente a separare la logica.
Tuttavia, dal momento che si sta utilizzando Rails, si potrebbe utilizzare blank?
invece di .strip.empty?
:
array.reject(&:blank?)
noti che nil.blank?
è vero che, nil.strip.empty?
solo ti porge un'eccezione quindi non sono del tutto equivalenti; tuttavia, probabilmente si desidera rifiutare anche nil
s utilizzando blank?
potrebbe essere meglio comunque. blank?
restituisce anche true per false
, {}
e []
ma probabilmente non si dispone di quelli nella serie di stringhe.
fonte
2012-02-27 05:05:40
Si potrebbe anche definire veramente_empty? metodo sulla "classe del contenuto di array" (ad esempio String) e quindi utilizzarlo come metodo vuoto. Non sto consigliando questo, solo dicendo che potresti .. – Johannes