Should the comma operator be removed in D2?
Justin Johansson
no at spam.com
Mon Nov 16 14:36:24 PST 2009
Adam D. Ruppe wrote:
> On Mon, Nov 16, 2009 at 10:12:57PM +0000, dsimcha wrote:
>> Can someone please explain to me what the comma operator does?
>
> a = b, c;
>
> Is the same as:
>
> b;
> a = c;
>
> In the comma operation, the first thing is evaluate, and its result discarded.
> Then, the second thing (after the comma) is evaluated. The overall result
> of the comma operator is the result of the second statement.
>
> 1, 2 == 2
>
> The usefulness is putting two statements together, where it only expects
> one, like inside the for loop, where the semicolon moves you on from the
> initialization to the condition.
Speaking of for loops, it's not uncommon to use the comma operator in
the 1st and 3rd expression places, e.g. (in C), something along the lines:
void fun( char* start, int n) {
int i;
char* p;
for ( i = 0, p = start; (i < n) && (*p != 0); ++i, ++p) {
/* ... */
}
}
More information about the Digitalmars-d
mailing list