toString or not toString
Paul D. Anderson
paul.d.removethis.anderson at comcast.andthis.net
Tue Aug 30 17:59:06 PDT 2011
Can someone clarify for me the status and/or direction of string formatting in D?
We've got:
1. toString, the object method with no parameters.
2. toString(sink, format)
3. to!String()
4. format
5. writef/writefln
6. write/writeln
I realize these exist for various reasons, some (1,3) are simple (unformatted) conversions, others (2,4-6) are designed to provide configurable formatting. The problem is that they are inconsistent with each other.
Using std.bigint as an example: 1, 3, 4 and 6 don't work, or don't work as expected (to me at least). 1. prints 'BigInt', 3 and 4 are compile errors.
I know bigint is a controversial example because Don has strong feelings against 1 and favors 2. (See bug #5231). I don't really have an opinion one way or the other but I need to know what to implement in my arbitrary-precision floating point module. This obviously relies heavily on bigint.
So, is there a transition underway in the language (or just Phobos) from toString, writeln and format, to toString(sink,format) and writefln?
Or is this just a divergence of views, both of which are acceptable and we'll have to get used to choosing one or the other?
Or am I just mistaken in believing there is any significant conflict?
I apologize if this has already been hashed out in the past and, if so, I would appreciate someone pointing me to that discussion. (Or just the results of the discussion.)
Paul
More information about the Digitalmars-d
mailing list