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?
_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users

Reply via email to