Bug in documentation or misunderstanding it?
H. S. Teoh via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Fri Jan 27 08:57:16 PST 2017
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.
More information about the Digitalmars-d-learn
mailing list