digitalmars.D.learn - Ascertaining!
- Salih Dincer (21/21) Jul 09 2022 Hi All,
- Paul Backus (6/17) Jul 09 2022 Yes, [the `=` operator is right-associative][1] in pretty much
Hi All, I didn't know compiling was bottom-up. This example proves that. Because in single-line expressions, it takes value from the right, firstly. ```d void main() { int n; // true (n == 0) int i = 1; // true (i == 1) int j = i = n; // all numbers are 0 n = i = j = 1; // all numbers are 1 // ascertaining: n = i = j = 1; assert(j); assert(i); assert(n); } ``` SDB 879
Jul 09 2022
On Saturday, 9 July 2022 at 10:12:00 UTC, Salih Dincer wrote:Hi All, I didn't know compiling was bottom-up. This example proves that. Because in single-line expressions, it takes value from the right, firstly. ```d void main() { int n; // true (n == 0) int i = 1; // true (i == 1) int j = i = n; // all numbers are 0 ```Yes, [the `=` operator is right-associative][1] in pretty much all C-like languages, so an expression of the form `a = b = c` is equivalent to `a = (b = c)`. [1]: https://en.wikipedia.org/wiki/Operator_associativity#Right-associativity_of_assignment_operators
Jul 09 2022