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