[swift-users] Associativity of && and || operator
rintaro ishizaki
fs.output at gmail.com
Fri Feb 17 02:54:50 CST 2017
Hello all,
Why the associativity of Logical{Conjunction,Disjunction}Precedence is "left
"?
If you write: A && B && C, it's grouped as (A && B) && C.
This means that the && function is *always* called twice: (&&)((&&)(A, B),
C).
I feel "right" associativity is more natural: (&&)(A, (&&)(B, C)),
because the && function is called only once if A is false.
I know that redundant && calls are optimized away in most cases.
I also know C and C++ standard says: "The && operator groups
left-to-right", and most programming languages follow that.
But why not "right" associativity?
What is the difference between logical operators and ?? operator that has "
right" associativity?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-users/attachments/20170217/d3aa19e4/attachment.html>
More information about the swift-users
mailing list