2011-10-19 17 views
28

So che posso vivere senza di essa, ma la domanda mi ha infastidito.Ruby equivalente di Groovy's Elvis (? :) operatore?

C'è un idioma di Ruby che è equivalente a Groovy di Elvis operator (?:)?

In sostanza, voglio essere in grado di ridurre tale

PARAM = ARGV[0] ? ARGV[0] : 'default' 

o equivalentemente

PARAM = 'default' unless PARAM = ARGV[0] 

in qualcosa di simile

PARAM = ARGV[0] ?: 'default' 
+1

possibile duplicato di [Che cosa significa || = significa in Ruby?] (Http://stackoverflow.com/questions/995593/what-does-mean-in-ruby) –

+5

@AndrewGrimm Solo se conosci già la risposta : p – Igor

risposta

42

Non importa :-) Ho appena trovato il rispondi dopo aver scoperto il nome dell'operatore.

Da here:

PARAM = ARGV[0] || 'default' 

(Deve essere perche' sto giocoleria 4 lingue in questo momento così ho dimenticato ho potuto fare che in primo luogo.)

+3

In alternativa, se stai facendo qualcosa come '@params = @params || 5 'puoi abbreviare a' @params || = 5' –

+3

@RyanBigg: Per essere pedante, è più come '@params || @params = 5'. http://stackoverflow.com/questions/995593/what-does-mean-in-ruby/2505285#2505285 –

3

Non è la stessa PARAM = ARGV[0] ? ARGV[0] : 'default' come PARAM = (ARGV[0] || 'default')?