On Thu, Jan 26, 2017 at 06:47:21PM +0000, Suliman via Digitalmars-d-learn wrote: > On Thursday, 26 January 2017 at 18:42:29 UTC, Suliman wrote: > > On Thursday, 26 January 2017 at 17:52:24 UTC, H. S. Teoh wrote: > > > On Thu, Jan 26, 2017 at 05:38:59PM +0000, Suliman via > > > Digitalmars-d-learn wrote: > > > > I read docs and can't understand what's wrong. Or I am do not > > > > understand it, or there is come mistake. > > > > > > > > Let's look at function > > > > https://dlang.org/phobos/std_stdio.html#.File.byLine > > > > > > > > auto byLine(Terminator = char, Char = char)(KeepTerminator > > > > keepTerminator = No.keepTerminator, Terminator terminator = > > > > '\x0a') > > > > > > > > what does mean first groups of scope: (Terminator = char, Char = > > > > char) ? > > > > > > Those are compile-time parameters. You specify them in a > > > compile-time argument list using the !(...) construct, for > > > example: > > > > > > auto lines = File("myfile.txt") > > > .byLine!(dchar, char)(Yes.keepTerminator, '\u263a'); > > > > > > > > > T > > > > So I am right about others items about for example that `=` is optional? > > Why this code is work: `file.byLine(KeepTerminator.no, 'm')`
Yes, the `=` means the parameter has a default value. This applies to both compile-time parameters and runtime parameters. So: file.byLine(KeepTerminator.no); is the same as: file.byLine!(char, char)(No.keepTerminator, '\x0a'); T -- There are 10 kinds of people in the world: those who can count in binary, and those who can't.