2 ms·
A common idiom to defang this was the "Yoda assignment": if (0 == do_something(foo)) { ... } If one accidentally omits one equals-sign, it makes the compile
by krylon 3y ago
A common idiom to defang this was the "Yoda assignment":
if (0 == do_something(foo)) { ... }
If one accidentally omits one equals-sign, it makes the compiler barf instead of becoming a silent-but-deadly kind of bug (whether intentional or not).
In Go, an assignment is not an expression, so the whole thing becomes illegal. I found this approach a bit offensive at first, but I got used to it rather quickly.