2016-03-10 4 views
13

Qual è il modo migliore per verificare se una variabile non è vuota in un altro se la condizione in Ruby (non Rails)?Modo rubino per verificare se una stringa non è vuota?

elsif not variable.to_s.empty? 
    # do something 
end 

o

elsif !variable.to_s.empty? 
    # do something 
end 

o

elsif variable.to_s.length > 0 
    # do something 
end 
+2

Ognuno di questi modi dovrebbe funzionare. Stai chiedendo qual è il modo migliore? –

+1

Il secondo è più idiomatico, penso. Se si usassero rails, si potrebbe anche fare "if variable.present?" O "if! Variable.blank?", Che gestiscono sia stringhe vuote che nils. –

risposta

17
string = "" 

unless string.to_s.strip.empty? 
    # ... 
end 
2

È possibile utilizzare uno

unless var.empty? 
    #do sth 
end 

o

unless var == "" 
    #do sth 
end 

o tutti questi con if e un negatore !.

+1

Entrambi falliranno se var è nullo. –

+2

che non faceva parte della domanda. Per verificare che facciano semplicemente: 'a meno che var && var.empty?'. – three

+1

Ecco a cosa serve '.to_s' (nel post originale) - per gestire nils. –

0

ho appena scoperto che ''.empty? rendimenti true ma ' '.empty? restituisce false. Anche to_s.length per ' ' non è zero.

forse è meglio usare squish come ' '.squish.empty?

Alas squish is in rails and not in ruby. Probably one should do ' '.strip.empty? to get the result.