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