Hello grauzone,
BCS wrote:
Hello justme,
bearophile Wrote:
C# will probably not follow the route of stagnation of Java for
some more time, thanks to Mono too. I don't like that string
interpolation syntax because it looks unsafe, and that design of
tuples can be improved, but they are listening to programmes (even
if they risk creating a mudball language):
http://www.infoq.com/news/2009/12/Mono-CSharp-Ex
More on those tuples:
http://tirania.org/blog/archive/2009/Dec-23.html
Eventually it will be quite useful to have some very well designed
multi-return support in D (like those tuples, but better).
Doesn't D2 already have tuples in Phobos. D has the comma operator
which C# doesn't so such syntax is not possible in D, me thinks.
A though on the comma operator: if the comma operator were defined to
give a tuple type and be implicitly castable to any suffix of it's
self, then you could get both the comma expression usage that Walter
wants as well as all the fun things that tuple expressions give.
int i = 1, j = 2;
(i, j) = (j, i); // swap
i = (j+= i, i*2 + j); // first expression gets evaluated and dropped.
Thoughts?
Why not make the programmer write tuple[$-1] instead?
i = (j += i, i*2 + j)[$-1];
There's no reason to keep the current comma operator.
Frankly, while I have no problem with it, I'd also be fine with dumping the
comma operator all together, even making the [$-1] thing illegal ("code has
no effect" and all that) but Walter has time and again shot down anything
that does away with the comma operator so I was looking at it as a way to
have my cake and eat it to.