On Mon, 14 May 2012 18:07:24 -0400, Timon Gehr <[email protected]> wrote:

On 05/14/2012 01:51 PM, deadalnix wrote:
Le 14/05/2012 12:49, Gor Gyolchanyan a écrit :
So, null arrays and empty arrays are always the same, except for an
empty string, which is a valid non-nill array of characters with length
0, right?


If it is the current behavior, it deserve a WAT !

I agree, but it is explained easily. Built-in string literals are always zero-terminated, therefore an empty string literal must point into accessible memory. I'd like to have [] !is null as well, so that null can reliably be used as a sentinel value.

This would mean either a) allocating memory for a 0 length array, or b) pointing it at non-null but non-heap memory.

a) is certainly out of the question.

b) is possible, but I still think we should discourage using null as a sentinel, it leads to confusing code.

Regardless, we should fix if(!arr) to mean if(!arr.length).

-Steve

Reply via email to