Thread overview
string version of array
Nov 14
Tony
Nov 14
Tony
Nov 14
Timoses
November 14
Is there an easy way to get the string representation of an array, as would be printed by writeln(), but captured in a string?
November 14
On 14/11/2017 7:54 AM, Tony wrote:
> Is there an easy way to get the string representation of an array, as would be printed by writeln(), but captured in a string?

struct Foo {
	int x;	
}

void main() {
	Foo[] data = [Foo(1), Foo(2), Foo(3)];
	
	import std.conv : text;
	import std.stdio;
	
	writeln(data.text);
}

---

[Foo(1), Foo(2), Foo(3)]
November 14
On Tuesday, 14 November 2017 at 07:56:06 UTC, rikki cattermole wrote:
> On 14/11/2017 7:54 AM, Tony wrote:
>> Is there an easy way to get the string representation of an array, as would be printed by writeln(), but captured in a string?
>
> struct Foo {
> 	int x;	
> }
>
> void main() {
> 	Foo[] data = [Foo(1), Foo(2), Foo(3)];
> 	
> 	import std.conv : text;
> 	import std.stdio;
> 	
> 	writeln(data.text);
> }
>
> ---
>
> [Foo(1), Foo(2), Foo(3)]

Why not

import std.conv : to;
writeln(data.to!string);

?
November 14
On 14/11/2017 8:16 AM, Andrea Fontana wrote:
> On Tuesday, 14 November 2017 at 07:56:06 UTC, rikki cattermole wrote:
>> On 14/11/2017 7:54 AM, Tony wrote:
>>> Is there an easy way to get the string representation of an array, as would be printed by writeln(), but captured in a string?
>>
>> struct Foo {
>>     int x;
>> }
>>
>> void main() {
>>     Foo[] data = [Foo(1), Foo(2), Foo(3)];
>>
>>     import std.conv : text;
>>     import std.stdio;
>>
>>     writeln(data.text);
>> }
>>
>> ---
>>
>> [Foo(1), Foo(2), Foo(3)]
> 
> Why not
> 
> import std.conv : to;
> writeln(data.to!string);
> 
> ?

.text is essentially short hand, that's all. I use it as it is more descriptive as to my intention.
November 14
On Tuesday, 14 November 2017 at 07:56:06 UTC, rikki cattermole wrote:
> On 14/11/2017 7:54 AM, Tony wrote:
>> Is there an easy way to get the string representation of an array, as would be printed by writeln(), but captured in a string?
>
> struct Foo {
> 	int x;	
> }
>
> void main() {
> 	Foo[] data = [Foo(1), Foo(2), Foo(3)];
> 	
> 	import std.conv : text;
> 	import std.stdio;
> 	
> 	writeln(data.text);
> }
>
> ---
>
> [Foo(1), Foo(2), Foo(3)]

Thanks. That flipped function calling syntax definitely takes some getting used to.
November 14
On Tuesday, 14 November 2017 at 08:21:59 UTC, Tony wrote:
> On Tuesday, 14 November 2017 at 07:56:06 UTC, rikki cattermole wrote:
>> On 14/11/2017 7:54 AM, Tony wrote:
>>> Is there an easy way to get the string representation of an array, as would be printed by writeln(), but captured in a string?
>>
>> struct Foo {
>> 	int x;	
>> }
>>
>> void main() {
>> 	Foo[] data = [Foo(1), Foo(2), Foo(3)];
>> 	
>> 	import std.conv : text;
>> 	import std.stdio;
>> 	
>> 	writeln(data.text);
>> }
>>
>> ---
>>
>> [Foo(1), Foo(2), Foo(3)]
>
> Thanks. That flipped function calling syntax definitely takes some getting used to.

if you consider this as a property, it makes alot of sense the var.propName syntax.
November 14
On Tuesday, 14 November 2017 at 14:00:54 UTC, Dr. Assembly wrote:
> On Tuesday, 14 November 2017 at 08:21:59 UTC, Tony wrote:
>> On Tuesday, 14 November 2017 at 07:56:06 UTC, rikki cattermole wrote:
>> Thanks. That flipped function calling syntax definitely takes some getting used to.
>
> if you consider this as a property, it makes alot of sense the var.propName syntax.

To give it a name I suppose it's this:
UFCS: https://dlang.org/spec/function.html#pseudo-member