How to hand in a closure variable

bearophile bearophileHUGS at lycos.com
Fri Apr 4 06:53:32 PDT 2014


Bienlein:

> Whereas this does not compile:
>
> immutable int b = (int) {
> 	if(1 == 1) {
> 		return 123;
> 	} else {
> 		return 456;
> 	}
> }(); // line x	
>
> However, this does compile and displays correctly 123:
>
> immutable int b = (int) {
> 	if(1 == 1) {
> 		return 123;
> 	} else {
> 		return 456;
> 	}
> }(1); // line y	
> 		
> writeln(b);
>
> Note it says () in line x and (1) in line y. The (1) in line y 
> is redundant, but the stuff then compiles.

If your D function has one argument, you have to give it one 
argument, even if it doesn't have a visible name and it's unused.

Bye,
bearophile


More information about the Digitalmars-d-learn mailing list