Thread overview
string version of array
Nov 14, 2017
Tony
Nov 14, 2017
rikki cattermole
Nov 14, 2017
Andrea Fontana
Nov 14, 2017
rikki cattermole
Nov 14, 2017
Tony
Nov 14, 2017
Dr. Assembly
Nov 14, 2017
Timoses
November 14, 2017
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, 2017
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, 2017
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, 2017
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, 2017
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, 2017
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, 2017
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