``` local t = {1} t[1] = undef print('1', t[1] == undef) print('2', t[1] == nil) ```
Why are both true? I know why, I am just anticipating the discussion that will substitute the # ones. Then someone will ask "But, can we just make case-2 to be false?". Than someone else will replace, "No because It will mean to make undef a value”
As Roberto notes, “undef” is NOT a value, you can’t use it in an equality check. It’s just a magic syntax that is allowed ONLY as the RHS of a table element assignment. (I think…)
—Tim
|