On 09.06.2018 23:39, OlegZ wrote:
On Saturday, 9 June 2018 at 20:03:15 UTC, OlegZ wrote:

auto hz = (string s) => { writeln( s ); return cast( int )s.length; }
How I should to write lambda of type "int delegate( string )?

I found one way:
auto hz = delegate int( string s ) { writeln( s ); return cast( int )s.length; };

but still don't understand why
return cast( int )s.length;
at topmost line returns "int delegate()" not just int?
just remove `=>`, either:
```
auto hz = (string s) { writeln( s ); return cast( int )s.length; }
```
or
```
auto hz = (s) => writeln( s );
```

In fact using `=>` you really define a function returning delegate.

```
auto hz = (string s) => { writeln( s ); return cast( int )s.length; }
```

is equivalent to

```
auto hz = (string s) {
        return () {writeln( s ); return cast( int )s.length;}
}
```

Reply via email to