Esiste un equivalente in Groovy al metodo Object#tap di Ruby che passa l'oggetto a una chiusura in cui l'oggetto diventa self e quindi restituisce l'oggetto? Conosco DefaultGroovyMethods.with ma questo richiede di restituire esplicitamente l'oggetto per poterlo concatenare o assegnarlo. In caso contrario, c'è un modo per implementarlo da solo e renderlo disponibile per tutti gli oggetti come gli altri metodi in DefaultGroovyMethods? È abbastanza facile prendere l'implementazione di DefaultGroovyMethods.with e restituire sempre l'oggetto al posto del valore restituito della chiusura, ma può essere reso disponibile per tutti gli oggetti? Secondo this post non c'è modo di estendere DefaultGroovyMethods ma c'è un altro modo per farlo?Equivalente Groovy dell'oggetto Ruby n. Tap
7
A
risposta
13
Non c'è metodo simile, che io sappia in Groovy, ma si dovrebbe essere in grado di fare:
Object.metaClass.tap = { Closure c ->
delegate.with c
delegate
}
(1..10) .tap { println "original ${it}" }
.findAll { it % 2 == 0 } .tap { println "evens ${it}" }
.collect { it * it } .tap { println "squares ${it}" }
stampe:
original [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
evens [2, 4, 6, 8, 10]
squares [4, 16, 36, 64, 100]
Problemi correlati
- 1. Ruby "tap" method - internal assignment
- 2. Groovy equivalente per rubino tutto e nessuno
- 3. Equivalente di eval() in Groovy
- 4. Ruby equivalente di Groovy's Elvis (? :) operatore?
- 5. Esiste un jQuery equivalente a Ruby's Object # tap?
- 6. Pygame equivalente per Ruby?
- 7. Ruby file_get_contents equivalente
- 8. Ruby/Rails hanno un equivalente ++?
- 9. equivalente AES in Ruby openssl?
- 10. Esiste un equivalente di Groovy in C#?
- 11. Ruby ha Skip (n) come C#?
- 12. Esiste una prevenzione nulla equivalente sugli attributi concatenati di groovy in ruby?
- 13. Esiste un equivalente .NET per Groovy e Grails o Ruby on Rails?
- 14. variabili di swap Groovy come Ruby
- 15. Equivalente di cURL per Ruby?
- 16. equivalente di “passaggio” in Ruby
- 17. Ruby equivalente all'aiuto di Python()?
- 18. Ruby equivalente a $ $ di PHP
- 19. Equivalente di "continua" in Ruby
- 20. Partita a capo `\ n` in ruby regex
- 21. Calcolo del logaritmo Base-n in Ruby
- 22. ruby, ruby equivalente di java wait/notify/notifyAll
- 23. MKMapView MKPointAnnotazione evento tap
- 24. Double Tap Android
- 25. XCUIElement tap() non funzionante
- 26. GestureOverlayView e Double-Tap
- 27. Animate UICollectionViewCell on Tap
- 28. Equivalente ad Array. Alcuni in ruby / rails
- 29. Javascript equivalente a `send` di Ruby
- 30. metric_fu equivalente per ruby 1.9.x
ok, che figata! =) – elias
Freddo. Vorrei suggerire di inserirlo in un'estensione :-) – Will
Grazie, è grandioso! –