Language | null | true | false |
---|---|---|---|
Java | null | true | false |
Python | None | True | False |
Objective-C | nil, or NULL, or [NSNull null], depending on context |
YES | NO |
C | NULL | anything except 0 | 0 |
Lisp | NIL | T | NIL |
Objective-C is psychotic. It’s a Smalltalk dialect built on top of C (and for the most part, it got the good bits of both and left out the bad bits). Obj-C lets you instantiate arrays like [NSArray arrayWithObjects:@"Hello", @"World", nil]
, using nil as an end-of-array marker because C’s varargs implementation doesn’t know how many args you passed. So it has this extra “null” object that’s not really null.
You can use nil about anywhere you can use null. The main difference is that you can send messages to nil, so you can use it in some places where null cant work.