On Thu, May 4, 2017 at 9:42 AM, <occi...@esperanto.org> wrote: > > One apparently random omission in C, which was fixed in Perl, is &&= and > ||=: > > a &&= b > a = a && b > a ||= b > a = a || b > > except that a gets evalutated only once (e.g. myarray[f(2)] &&= b) > > Besides being useful, this would make Go more consistent. Of course > relative operators also do not have this, but there usually the result type > is different (e.g. bool = int < int)
The &&= and ||= operators are omitted in both C and Go because they are short-cutting operators. When you write `a = a && b`, then if a is true, b is not evaluated. So presumably when you write `a &&= b` then if a is true b is not evaluated. But it is potentially confusing to see `a &&= f()` when f() may or may not be called. Ian -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.