Thread overview | |||||
---|---|---|---|---|---|
|
October 22, 2007 if statement. | ||||
---|---|---|---|---|
| ||||
From the documentation: "If an auto Identifier is provided, it is declared and initialized to the value and type of the Expression. Its scope extends from when it is initialized to the end of the ThenStatement. If a Declarator is provided, it is declared and initialized to the value of the Expression. Its scope extends from when it is initialized to the end of the ThenStatement. " I can't understand what Declerator is.. I thought it would assign a previously defined variable, but that's not the case. if (auto r = true) { writefln(r); // OK } bool r; if (r = true) { // Error: '=' does not give a boolean result writefln(r); } So... What is it then? |
October 22, 2007 Re: if statement. | ||||
---|---|---|---|---|
| ||||
Posted in reply to Simen Haugen | Simen Haugen wrote:
> From the documentation:
>
> "If an auto Identifier is provided, it is declared and initialized to the value and type of the Expression. Its scope extends from when it is initialized to the end of the ThenStatement.
>
> If a Declarator is provided, it is declared and initialized to the value of the Expression. Its scope extends from when it is initialized to the end of the ThenStatement. "
>
> I can't understand what Declerator is.. I thought it would assign a previously defined variable, but that's not the case.
>
> if (auto r = true) {
> writefln(r); // OK
> }
>
> bool r;
> if (r = true) { // Error: '=' does not give a boolean result
> writefln(r);
> }
>
>
> So... What is it then?
This is a guess, but it compiles so...
if (bool r = true) {
writefln(r);
}
A declarator would be where you declare a variable, not re-assign. I guess.
Regan
|
October 22, 2007 Re: if statement. | ||||
---|---|---|---|---|
| ||||
Posted in reply to Simen Haugen | "Simen Haugen" <simen@norstat.no> wrote in message news:ffi0d1$vjp$1@digitalmars.com... > From the documentation: > > "If an auto Identifier is provided, it is declared and initialized to the value and type of the Expression. Its scope extends from when it is initialized to the end of the ThenStatement. > > If a Declarator is provided, it is declared and initialized to the value of the Expression. Its scope extends from when it is initialized to the end of the ThenStatement. " > > I can't understand what Declerator is.. I thought it would assign a previously defined variable, but that's not the case. > > if (auto r = true) { > writefln(r); // OK > } > > bool r; > if (r = true) { // Error: '=' does not give a boolean result > writefln(r); > } > > > So... What is it then? > > The spec for Declarators is given in the Declarations section of the spec. Yes, it's basically a variable declaration. Hence the name. |
Copyright © 1999-2021 by the D Language Foundation