[OT] Some neat ideas from the Kotlin language
Nick Sabalausky via Digitalmars-d
digitalmars-d at puremagic.com
Fri Feb 19 07:11:28 PST 2016
On 02/19/2016 07:16 AM, Jacob Carlborg wrote:
> On 2016-02-19 00:33, Yuxuan Shui wrote:
>> Just come across Kotlin today, and found some interesting ideas skimming
>> through its tutorial:
>>
>> 1) Null check
>>
>> Kotlin has Optional types, suffixed with a '?'. Like 'Int?', same as in
>> Swift. But instead of explicitly unwrapping them (e.g. var! in Swift, or
>> var.unwrap() in Rust), Kotlin let you do this:
>>
>>
>> var: Int?
>> if (var != null)
>> //You can use var here
>>
Me want.
>
>> 2) Smart cast
>>
>> This is a similar to previous one, instead of:
>>
>> var1: Object;
>> var2 = cast(String)var1;
>>
>> You do this:
>>
>> if (var1 is String)
>> //You can use var1 as a String here
>
> It's similar how it works in D, for Objects:
>
> class Foo {}
> Object foo = new Foo;
>
> if (auto o = cast(Foo) foo)
> // use o as Foo here
>
> When casting to a subclass it will return null reference if the cast fails.
>
It'd be nice if it didn't require a new variable name though. When I do
that, I usually find I wind up needing to resort to some
hungarian-notation-inspired "start including the type in the variable's
name" verbosity. It's a fantastic feature of D, but that Kotlin version
seems much nicer.
More information about the Digitalmars-d
mailing list