Почему `sData` не является нулевым значением?
Выполнение кода здесь на eval.in
sMessage = "<hjpotter92> +help|"
local _, _, sCmd, sData = sMessage:find( "%b<>%s[%+%-%*%/%!%#%?](%w+)%s?(.*)|" )
print( _, sData, sCmd )
Выход из print
говорит мой sData
это значение с пустой строкой.
Почему это значение не nil
? Я создал весь проект на основе sData
являющийся nil
для такого случая, и я считаю, что это не так.
Я решил проблему с помощью этого блока
if sData:len() == 0 then
sData = nil
end
Итак, я не ищу решение, чтобы сделать эту работу. Я просто спрашиваю, почему это не nil
значение?
1 ответ
Решение
Почему это должно быть nil
?
Вы получаете успешное соответствие шаблона .*
с пустой строкой.nil
означает "совпадение не найдено".
пример