Czy istnieje jakiś odpowiednik w Groovy dla metody Ruby'ego Object#tap, który przekazuje obiekt do zamknięcia, w którym obiekt staje się self, a następnie zwraca obiekt? Wiem o DefaultGroovyMethods.with, ale wymaga to jawnego zwrócenia obiektu, aby móc go powiązać lub przypisać. Jeśli nie, czy istnieje sposób, w jaki mogę go zaimplementować samodzielnie i czy będzie on dostępny dla wszystkich obiektów, takich jak inne metody w DefaultGroovyMethods? Łatwo jest wdrożyć implementację DefaultGroovyMethods.with i zawsze zwracać obiekt zamiast zwracanej wartości zamknięcia, ale czy można go udostępnić wszystkim obiektom? Według this post nie ma sposobu na rozszerzenie DefaultGroovyMethods, ale czy jest jakiś inny sposób to zrobić?Groovy odpowiednik obiektu obiektu Ruby # tap
7
A
Odpowiedz
13
Nie ma podobny sposób, że znam w porywające, ale powinieneś być w stanie to zrobić:
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}" }
drukuje:
original [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
evens [2, 4, 6, 8, 10]
squares [4, 16, 36, 64, 100]
Powiązane problemy
- 1. Czy istnieje odpowiednik jQuery do kliknięcia obiektu obiektu Ruby?
- 2. Groovy odpowiednik ruby wszystko i żaden
- 3. Odkrywanie członków obiektu Ruby?
- 4. Wersja obiektu Ruby
- 5. dostać metody obiektu w Ruby
- 6. dynamicznie dodawanie atrybutów obiektu Ruby
- 7. Mapa Ruby() dla pojedynczego obiektu
- 8. Co to jest odpowiednik Java obiektu Scala?
- 9. Funkcje obiektu nazwanego obiektu
- 10. Jak mogę sprawdzić metody obiektu Ruby?
- 11. Jak zrobić instancję obiektu hash w Ruby?
- 12. Co jest pierwsze w modelu obiektu Ruby?
- 13. Obiekt obiektu Ruby pusty, czy nie?
- 14. Konwersja obiektu do wartości mieszania w Ruby
- 15. Ruby: Łapanie wszystkich metod wysłanych do obiektu
- 16. Czy można zmienić klasę obiektu Ruby?
- 17. Ruby id wyjście modelu jako obiektu OID
- 18. Używanie JSON do tworzenia obiektu w Groovy/Grails
- 19. Czy możliwe jest uzyskanie obiektu wywołującego zamknięcia w groovy?
- 20. Skrócony sposób na przypisanie właściwości obiektu w Groovy?
- 21. Jak wyodrębnić nową listę z pola obiektu w Groovy
- 22. Jak utworzyć kryteria w groovy/grails dla zagnieżdżonego obiektu?
- 23. Dynamicznie dodaj właściwość lub metodę do obiektu w groovy
- 24. właściwości obiektu dostęp obrębie obiektu
- 25. Struktura obiektu Usuwanie obiektu DataContext
- 26. Obiektu obiektu i fored stdClass
- 27. Zrozumienie obiektu obiektu Crockford.create shim
- 28. Identyfikator obiektu JavaScript
- 29. Co to jest odpowiednik Swift obiektu Objective-C "#ifdef __IPHONE_11_0"?
- 30. Swift odpowiednik "each_cons" Ruby
Ok, to jest cool! =) – elias
Fajnie. Chciałbym zasugerować umieszczenie tego w rozszerzeniu :-) – Will
Dzięki, to świetnie! –