For further consideration...
Reinier Zwitserloot
reinier at zwitserloot.com
Thu Mar 26 14:01:07 PDT 2009
Just because something goes wrong in one place is no excuse to let it
happen in another.
--Reinier Zwitserloot
Like it? Tip it!
http://tipit.to
On Mar 26, 2009, at 21:08, Marek Kozieł wrote:
> 2009/3/25 Tim Keith <tim.keith at gmail.com>:
>> I would like to suggest at least leaving out ?[]
>>
>> The example in the proposal is not very compelling:
>> class Group {
>> Person[] members; // null if no members
>> }
>> class Person {
>> String name; // may be null
>> }
>> final String aMember = g?.members?[0]?.name ?: "nobody";
>>
>> If members is null you get "nobody" but if members is empty (the
>> logical way
>> to signify "no members") you get ArrayIndexOutOfBoundsException.
>>
>> "array?[...]" is like saying: if array is null treat it like it's an
>> infinitely
>> long array of nulls.
>>
>> "object?.member" is like saying: if object it null, treat it like
>> every
>> field
>> is null and every method returns null.
>> The array analog to that should be that "array?.length" means
>> array == null ? 0 : array.length
>>
>> -- Tim
>>
>>
>
> ArrayIndexOutOfBoundsException is valid because on ArrayList would
> work it in the same way.
>
> --
> Pozdrowionka. / Regards.
> Lasu aka Marek Kozieł
>
> http://lasu2string.blogspot.com/
>
More information about the coin-dev
mailing list