2015-07-09 2 views
2

Я разрабатываю плагин для Oxide 2. Я учился у других плагинов, и я заметил, что некоторые из них используют null вместо nil. Например:Lua: В чем разница между нулем и нулем?

if args[1] == null then 

Оксид 2 записывается в C#, поэтому я предполагаю, что null определяется в C# или в Lua интерфейсе.

Есть ли разница между ними?


Update: Я где-то читал, что он может быть использован для проверки, если столбец MySQL является NULL. Это правда?

+0

Вы имеете в виду 'var = nil', а также' var = null'? Запрет любых специальных встроенных деталей 'null' - это просто переменная (которая, вероятно, не имеет значения, и поэтому будет« nil'), но может быть назначена обычно иначе. Попробуйте 'print (null); null = "foo"; print (null) 'в обычном lua-интерпретаторе, например. –

+0

@EtanReisner Сначала он напечатал 'null', но после модификации он напечатал' foo'. Так что это нормальная переменная. – Genhis

+0

В нормальном lua это так. Я не могу говорить о том, что сделал Оксид, когда они встроили его, или если какая-то библиотека использует «нуль» в качестве какого-то особого стража. –

ответ

1

nil - значение на языке Lua.

null - имя переменной. Какую ценность он содержит? Вы можете легко это проверить. Мы не можем. Если он окажется nil, то использование null бессмысленно, вероятно, ошибка, вызванная переходом между контекстом между кодом C# и Lua, который случайно работает, потому что неопределенная переменная будет оцениваться до nil.