Nullable condition operator
ZombineDev via Digitalmars-d
digitalmars-d at puremagic.com
Fri Dec 11 05:44:08 PST 2015
On Friday, 11 December 2015 at 08:30:21 UTC, Martin6265 wrote:
> But the syntax of it will be like calling template func, and
> its not desirable.
> The trick is in the simplicity of the pattern not only in
> functionality.
>
No, by using UFCS and IFTI, the syntax of `maybe` becomes even
better than C#'s `?.`. See:
// http://dlang.org/glossary.html
// UFCS: https://dlang.org/spec/function.html#pseudo-member
// IFTI: https://dlang.org/spec/template.html#variadic-templates
(search for "implicit")
struct Node
{
int val;
Node* left, right;
}
void main()
{
import std.stdio;
auto tree = new Node(1,
new Node(2),
new Node(3,
null,
new Node(4)
)
);
writeln(tree.maybe.right.right.val);
writeln(tree.maybe.left.right.left.right);
writeln(tree.maybe.left.right.left.right.val);
}
// Full source: http://dpaste.dzfl.pl/8b5dcec7aaf3
> Look, Im developing multiplatform GUI framework (based on .NET
> conventions and Cocoa) & ID.
I'm interested to know more about the multiplatform GUI framework
you are developing. What are the main features, goals and design
ideas, architecture and programming model?
> I can make my custom version of D (anyway, Ill distribute it as
> a one package product) but Im not happy to make new,
> uncompatibile version.
What do you miss the most in D? What would you change to be
worthwhile the effort to distribute a custom version of D?
Before learning about D, I worked on UI components with C#/WPF|SL
so I can understand that in the beginning it seems that C# is
better in some stuff than D. However now I would never go back to
C# and .NET, because I would miss so much of D's features and I
don't remember anything that I miss from C# and .NET.
More information about the Digitalmars-d
mailing list