Hi Jochen, ?= 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
a = a * 2 a *= 2 a = a ?: 2 a ?= 2 Cheers, Daniel.Sun --- 原始邮件 --- 发件人: "Jochen Theodorou [via Groovy]" <ml-node+s329449n5736900...@n5.nabble.com> 已发: 2016年11月23日 上午12:47 收件人: "Daniel Sun" <realblue...@hotmail.com> 主题: Re: [PROPOSAL]new operator ?= 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<http://groovy.329449.n5.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=5736886&code=cmVhbGJsdWVzdW5AaG90bWFpbC5jb218NTczNjg4NnwxMTQ2MjE4MjI1>. NAML<http://groovy.329449.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml> -- View this message in context: http://groovy.329449.n5.nabble.com/Re-PROPOSAL-new-operator-tp5736906.html Sent from the Groovy Dev mailing list archive at Nabble.com.