July 18, 2020
```
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?
July 18, 2020
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