www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Why is typeof(readln) -> void?

reply blizzard <bliz zar.d> writes:
```
import std.stdio;

void main()
{
     writeln(typeof(readln()).stringof); // string
     writeln(typeof(readln).stringof); // void
}
```
Can anybody explain the difference between readln() and readln? I 
read somewhere that the () were optional, so why this difference?
Jul 18 2020
parent rikki cattermole <rikki cattermole.co.nz> writes:
On 18/07/2020 9:14 PM, blizzard wrote:
 Can anybody explain the difference between readln() and readln? I read 
 somewhere that the () were optional, so why this difference?
The brackets are optional when calling a function. You are not calling a function if you wrap it in typeof. "The Expression is not evaluated, it is used purely to generate the type:" https://dlang.org/spec/declaration.html#Typeof
Jul 18 2020