Ho utilizzato if yield self[x]
per valutare se un blocco restituisce vero o falso. Ho bisogno di rendere il blocco opzionale, e vedo suggerimenti per fare yield if block_given?
. Come posso combinare queste due linee?C'è un modo migliore per ottenere un valore da un blocco in Ruby?
7
A
risposta
7
Hai provato questo?
if block_given? && yield(self[x])
# ...
end
Questa condizione sempre sicuro quando non viene dato blocco, ossia tutto ciò che è in luogo di # ...
non saranno valutate. Se si desidera che la condizione di successo se nessun blocco è dato, fare questo, invece:
if !block_given? || yield(self[x])
# ...
end
O questo, anche se penso che sia più difficile da leggere:
unless block_given? && !yield(self[x])
# ...
end
3
Prova:
if block_given?
if yield self[x]
# Do something....
end
end
0
È possibile aggiungere una condizione all'intero blocco if
:
if yield self[x]
# do something...
end if block_given?
Problemi correlati
- 1. modo migliore per trasferire valore da un ArrayList all'altro
- 2. Come posso restituire un valore da un thread in Ruby?
- 3. Avere un blocco/comando Ruby fallire in modo silenzioso senza un blocco vuoto 'rescue'
- 4. C'è un modo per ottenere tutte le chiavi da un valore in un multimap?
- 5. Il modo migliore per analizzare un valore int in Javascript
- 6. Qual è un buon modo per ottenere il nome file da un URL in Ruby?
- 7. In Gradle, c'è un modo migliore per ottenere variabili d'ambiente?
- 8. Come divido in modo da ottenere un valore decimale?
- 9. ottenere un valore da un ConstantExpression
- 10. Python: un modo per ottenere un processo con un blocco di scrittura e altri da leggere solo in parallelo?
- 11. Qual è il modo migliore per creare un valore percentuale da due numeri interi in C#?
- 12. Ottenere il valore .Text da un TextBox
- 13. Esiste un modo migliore per ottenere il conteggio delle pagine da un PrintDocument rispetto a questo?
- 14. Come trasformare un metodo Ruby in un blocco?
- 15. Un modo migliore per ottenere la directory di base?
- 16. Un modo migliore per verificare il valore di un'opzione?
- 17. Il modo migliore per restituire un valore booleano casuale
- 18. ruby debugger passo direttamente in un blocco?
- 19. Come ottenere un valore da un generatore in Python?
- 20. Rubino: blocco di rendimento da un blocco?
- 21. Il modo migliore per ottenere un contesto di applicazione in un metodo statico in Android
- 22. Il modo migliore per gestire un KeyNotFoundException
- 23. Django: Come posso ottenere un blocco da un modello?
- 24. Il modo migliore per ottenere valore dalla collezione per indice
- 25. Il modo migliore per caricare più file da un browser
- 26. Un modo migliore per la subquery
- 27. Il modo migliore per interrogare un dizionario in C#
- 28. Come passare un blocco a un altro in Ruby?
- 29. Un modo migliore per ucfirst in un template Jade?
- 30. Un modo efficiente per confrontare un valore NULL o un valore per una colonna in SQL
Perché non mostrarci cosa stai cercando di fare, piuttosto che descriverlo? In questo modo possiamo sistemare il tuo codice piuttosto che provare a inserire qualcosa? –