Thread overview
string version of array
6 days ago
Tony
6 days ago
Andrea Fontana
6 days ago
Tony
6 days ago
Dr. Assembly
6 days ago
Timoses
6 days ago
Is there an easy way to get the string representation of an array, as would be printed by writeln(), but captured in a string?
6 days ago
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)]
6 days ago
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);

?
6 days ago
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.
6 days ago
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.
6 days ago
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.
6 days ago
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