Posso generare poche righe di codice che lo faranno, ma mi chiedo se c'è un bel modo Rubyesque per farlo. Nel caso in cui non sia stato chiaro, quello che sto cercando è un metodo array che restituirà true se fornito (per esempio) [3,3,3,3,3]
o ["rabbits","rabbits","rabbits"]
ma restituirà false con [1,2,3,4,5]
o ["rabbits","rabbits","hares"]
.Come si verifica se tutti gli elementi in una matrice sono identici?
Grazie
È molto elegante. Posso semplicemente usare .uniq.length == 1 direttamente nel mio codice piuttosto che nel modo in cui l'hai fatto (lo sto usando solo una volta, quindi lo terrò ASCIUTTO). Sarebbe bello se ci fosse un built-in .same_values? metodo. Non ho bisogno di preoccuparmi per il caso di array vuoto nel mio codice come a) non dovrebbe venire nella mia situazione eb) se lo facesse vorrei che restituisca false. Grazie. – brad
Nota che 'uniq' usa' hash' e 'eql?' E non '==' che può o non può essere quello che vuoi. –
Si potrebbe ovviamente estendere questo agli array annidati con self.flatten.uniq.lenth == 1 –