Sono gli stessi quando utilizzati in una dichiarazione if/else/end
? Cosa fai di solito? Mi chiedo se ci siano differenze sottili o casi limite in cui object
e !object.nil?
risponderebbero diversamente.Ruby: "if! Object.nil?" o "se oggetto"
risposta
Ci sono differenze. Per esempio:
false.nil?
# => false
Quindi:
if !false.nil?
'foo'
end
# => "foo"
if false
'foo'
end
# => nil
Come @tokland suggerito, nella maggior parte dei casi utilizzando !obj.nil?
costruzione è inutile.
Bene. if object
si comporterà in modo diverso da if !object.nil?
se object=false
.
Questo è tutto.
if object
test se object
non è nil
o false
.
!object.nil?
test se object
non è nil
. (Rubydoc)
Quindi quando object
è false
, hanno valori diversi.
Gli oggetti possono ignorare nil?
ma non possono essere falsamente a meno che non siano nulli o falsi. Personalmente uso nil?
o ActiveSupport's present?
in modo da mantenere tale flessibilità. Penso anche che si legge un po 'meglio.
C'è uno e un solo caso in cui !object.nil?
e object
restituiscono risultati diversi in un contesto booleano e che è se object
è false
. In tutte le altre situazioni il risultato è lo stesso.
Con questo, penso che possiamo rispondere alla tua domanda reale (che è:? C'è qualche situazione in cui devo usare if !object.nil?
invece di if object
quando la protezione contro object
essere pari a zero):
No, è sempre possibile utilizzare if object
se si desidera verificare contro nil
.
- 1. se vs if (x == false) in Ruby
- 2. Best Practice: if (foo == false) o se
- 3. Ruby - uscita dal blocco IF
- 4. previsto, o; before if
- 5. complesso if() o enum?
- 6. Ruby on Rails Else If Domanda
- 7. Quale è meglio sintassi java: if (isSomething() == false) {{o se
- 8. MySql: è possibile "SUM IF" o "COUNT SE"?
- 9. Come scrivere 'se' senza usare 'poi' o 'fine' in Ruby
- 10. In Ruby, dovrei usare || = o se definito? per la memoizzazione?
- 11. Comprensione del "||" Operatore O in Se condizionali in Ruby
- 12. Come verificare se un oggetto è iterabile in Ruby?
- 13. Ruby: caso tramite oggetto
- 14. if (mask & VALUE) o if ((mask & VALUE) == VALUE)?
- 15. DropDownListPer richiamata o istruzione if
- 16. ruby on rails if statement with boolean sulla pagina index.html.erb
- 17. se - else if - else e staffe
- 18. Ruby if .. elsIf .. else su una singola riga?
- 19. Se utilizzare String o Integer in BigDecimal in Ruby
- 20. IRB - Sintassi hash di Ruby 1.9.x: {if: true} non è uguale a {: if => true}
- 21. if {} in if: endif
- 22. Ruby Classe oggetto Garbage Collection
- 23. Ottenere ruby funzione oggetto stesso
- 24. ruby booleano o operatore || differenza
- 25. Metodi ruby equivalenti a "if a in list" in python?
- 26. Come sapere se un oggetto è autoreleased o no?
- 27. controllo di un comando bash in un'istruzione if in Ruby
- 28. Oggetto PHP o array
- 29. Pulizia nidificata "if {} else {if {} else {if {...}}}"
- 30. if (foo o bar o baz) è Nessuno:
Non è il modo rubino di scrivere "se oggetto.nil?.!" ;-) –