[Vala] Converting nullable to non-nullable types



Hey!

I am just wondering if there is any syntactic sugar for shortening the
following code segment

[code]
Element? nsource = ElementFactory.make("filesrc", "file-source");
if (nsource == null) { printError(); return; }
Element source = (Element)nsource;
[/code]


To me, it seems like a common pattern to convert a nullable type to a
non-nullable type.  If such a shortcut does not exist, perhaps it would
be a good idea to add a "conditional cast" operator

Four examples of a possible "conditional cast":

Element a = ElementFactory.make("filesrc", "file-source") or
some_code_block(); // Returns an Element


Element b = ElementFactory.make("filesrc", "file-source") or () =>
{/*...*/};


Element c = ElementFactory.make("filesrc", "file-source") or throw new
Foo.Bar();


Element d = ElementFactory.make("networksrc", "net-source") or
ElementFactory.make("filesrc", "file-source") or throw new Foo.Bar();


(Inspired by: http://tinyurl.com/yc7mgxj)


Attachment: smime.p7s
Description: S/MIME cryptographic signature



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]