Why I loved D :)

Kozzi kozzi11 at gmail.com
Mon Oct 7 14:04:34 PDT 2013


In my work we are rewriting some of ours modules from PHP to D. 
And today one of my colleague want to rewrite some of PHP code, 
where he use list statement. I never use this statement in PHP. 
So I do not know if there is a some alternative in D phobos. So I 
try to write my own solution. And it took approximately only one 
minute and that why I ove D.

Because I was able to implement same functionality with same 
syntax quite fast :).

Here is my solution. Yes I know, it is not perfect but it works 
:P.

import std.stdio;

struct list
{
	void*[] ptrs;
	static list opCall(T...)(auto ref T vars)
	{

		list ls;
		foreach(ref var; vars)
		{
			ls.ptrs ~= &var;
		}
		return ls;
	}

	void opAssign(T)(T[] values)
	{
		foreach(index, ptr; ptrs)
		{
			*(cast(T*)ptr) = values[index];
		}
	}
}

void main(string[] args)
{
	int a, b, c;
	list(a, b, c) = [1,2,3];
	writeln(a);
	writeln(b);
	writeln(c);

}


More information about the Digitalmars-d mailing list