Daniel, > On 23. 11. 2016, at 12:57 AM, Daniel Sun <realblue...@hotmail.com> wrote: > ?= is similar with *=, +=, etc in their usage, and they are all for > convenience and readability. So if ?= does not make sense, why others does? > :-P
Can't speak for Jochen of course, but I daresay the difference is that > a = a * 2 > a *= 2 one pretty often writes these things and without the op= shortcuts, there's no decent way to do that. Contrariwise... > a = a ?: 2 ... one almost never writes this, for it is just as easy and -- in my personal and potentially flawed opinion, much more intention-revealing -- to write if (!a) a=2 and therefore... > a ?= 2 ...this seems indeed rather at the superfluous side. All the best, OC > On 22.11.2016 15:25, Guillaume Laforge wrote: > > It's a feature that's often be requested. > > I think Ruby's got an equivalent with ||=, and it's often the reference > > people give when exploring our Elvis operator coming from a ruby > > background in particular. > > I've had several opportunities where I could've used this operator. > > It might make for a nice addition. > > while I agree that ||= is more like what ruby offers we have the > problem, that for Groovy a||b always will be evaluated as boolean. > > In fact first we apply groovy truth to a and if that is not true, we do > the same for b and if that is not true we return false, otherwise true. > Which means a = a||b would not be equal to a ||= b if that is supposed > to be the same as proposed for ?=. > > What would come near to that is |, which is mapped to a method call to > "or". And then again, it has already a meaning for numbers, that does > not fit. > > So for me a new operator makes more sense. But frankly... > > > def foo(x) { > > return x ?: "empty" > > } > > or even > > > def foo(x) { > > x = x ?: "empty" > > return x > > } > > vs. > > > def foo(x) { > > x ?= "empty" > > return x > > } > > Is that really worth it? Does it really improve readability that much? > Or maybe someone has a better example? > > it is different for !in and !instanceof, because of the spacing and > because you may have them in complex expressions. But ?= is a statement > and I would very much dislike this usage as expression. > > For now I am -1 on this > > bye Jochen > > > > If you reply to this email, your message will be added to the discussion > below: > http://groovy.329449.n5.nabble.com/PROPOSAL-new-operator-tp5736886p5736900.html > To unsubscribe from [PROPOSAL]new operator ?=, click here. > NAML > > View this message in context: 回复: Re: [PROPOSAL]new operator ?= > Sent from the Groovy Dev mailing list archive at Nabble.com.