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