To me it would be surprising if && grouped differently than * or &; since it is closely associated with boolean-and, which in turn is the equivalent operation to multiply in Boolean logic.
On Fri, 17 Feb 2017 at 7:56 pm, rintaro ishizaki via swift-users < swift-users@swift.org> wrote: > 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 > -- -- Howard.
_______________________________________________ swift-users mailing list swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users