У меня есть переменная, которая содержит число. В то время как Lua позволяет переменным быть установленными на nil
, переменная становится токсичной, уничтожая весь код на своем пути.
Если переменная содержит nil
, я хочу, чтобы она была преобразована в ноль.
local score;
score = gameResults.finalScore;
Я хочу убедиться, что score
содержит число, поэтому я пытаюсь:
local score;
score = tonumber(gameResults.finalScore);
но это не работает. Поэтому я стараюсь:
local function ToNumberEx(v)
if (v == nil) then
return 0
else
return tonumber(v)
end
local score;
score = ToNumberEx(gameResults.finalScore);
но это не работает. Поэтому я стараюсь:
local function ToNumberEx(v)
if (v == nil) then
return 0
else
return tonumber(v)
end
local score;
score = ToNumberEx(gameResults.finalScore);
if (score == nil) then
score = 0
end
Это работает, но побеждает цель иметь функцию.
Что не так с функцией? Я уверен, что есть вполне разумное и логичное объяснение - кроме тех, кто знаком с языками программирования.