They're not exactly shorthand. They use `invoke_dynamic` under the hood, which defers the creation of the lambda til it is used. Conceptually they are, but in practice they're a little different.
Re:Toward Go 2
by slaymaker1907 on Thursday July 13, 2017 @10:31PM
(#14766988)
Lambdas are also more aggressively optimized. If possible, the compiler will sometimes turn a lambda into a static method.
For instance, you have two functions. One takes `Function<Type, Type>` and the other takes `UnaryOperator<Type>`. Giving the "same" lambda to both functions will result in two anonymous inner types, one implementing both interfaces.