DevOps / Apache Groovy Interview questions
What is the difference between tap and with in Groovy?
with executes a closure against an object and returns whatever the closure's last expression evaluates to - useful when you want the closure's own result back, not necessarily the original object.
tap also executes a closure against an object, using the same implicit delegation, but always returns the original object itself afterward, regardless of what the closure's body evaluates to - making it well suited for chaining, like configuring an object and then immediately using the same reference in a fluent call chain.
In short: use with when you want the closure's result, and tap when you want to keep chaining with the original object after running some side-effecting configuration on it.
More Related questions...