string to boolean

Tema05

Известный
Автор темы
1,443
403
Версия MoonLoader
.026-beta
Код выводит 1, 1 а должен 2, 1. Что нужно сделать чтобы if нормально определял?

Lua:
if "false"
 then
  print("1")
 else
  print("2")
end
if "true"
 then
  print("1")
 else
  print("2")
end
 

sᴀxᴏɴ

#Mary
Всефорумный модератор
791
846
Я получаю json и значения эти в нём в виде строки, я для примера подставил.
Ну раз из жсон, то самый простой вариант - это
Lua:
local function isTrue(var)
    return var == "true"
end
 
  • Нравится
Реакции: Sargon

штейн

Известный
Проверенный
1,001
687
Да ничем, просто пока я писал свой ответ того поста ещё не было
1604490658841.png

ну тем не менее автор темы выбрал лучшим ответ твой, хотя на мой взгляд (хотя они одинаковы но тем не менее) способ саксона выглядит приятнее =(
 

Tema05

Известный
Автор темы
1,443
403
Посмотреть вложение 74285
ну тем не менее автор темы выбрал лучшим ответ твой, хотя на мой взгляд (хотя они одинаковы но тем не менее) способ саксона выглядит приятнее =(
Да меня это как раз и бесит. Все вместо того чтобы сделать код меньше расписывают всякие лишние функции, переменные, расставляют дохуя пробелов. Я когда функции с бх беру минимум в 2 раза уменьшаю и убираю кучу лишних переменных. Вот в данной ситуации в чём смысл мне мотать 3к строк пол века до начала imgui и думать куда бы впихнуть эту лишнею функцию которую я буду использовать только в 1 месте. И да этот ответ появился быстрее, но даже сейчас он мне нравится намного больше.
 

kin4stat

mq-team · kin4@naebalovo.team
Всефорумный модератор
2,731
4,717
Да меня это как раз и бесит. Все вместо того чтобы сделать код меньше расписывают всякие лишние функции, переменные, расставляют дохуя пробелов. Я когда функции с бх беру минимум в 2 раза уменьшаю и убираю кучу лишних переменных. Вот в данной ситуации в чём смысл мне мотать 3к строк пол века до начала imgui и думать куда бы впихнуть эту лишнею функцию которую я буду использовать только в 1 месте. И да этот ответ появился быстрее, но даже сейчас он мне нравится намного больше.
Я конечно не эксперт, но функция саксона будет в ЛЮБОМ случае занимать меньше места, и удобнее в использовании. А «системные» функции обычно тыкают в конец файла, чтобы не мешали при чтении основного кода
 

ufdhbi

Известный
Проверенный
1,455
861
Посмотреть вложение 74285
ну тем не менее автор темы выбрал лучшим ответ твой, хотя на мой взгляд (хотя они одинаковы но тем не менее) способ саксона выглядит приятнее =(
срубабу, ты забыл? У кого зеленый темнее (стремиться к красному) тот и авторитетнее
 

Tema05

Известный
Автор темы
1,443
403
Я конечно не эксперт, но функция саксона будет в ЛЮБОМ случае занимать меньше места, и удобнее в использовании. А «системные» функции обычно тыкают в конец файла, чтобы не мешали при чтении основного кода
Зачем мне забивать код одноразовыми функциями? Если я хочу что то изменить нужно каждый раз их искать и взглянув на функцию можно не понять что она делает.
И в смысле его функция занимает меньше места?
Lua:
local function isTrue(var)
    return var == "true"
end

isTrue()
--61 символа + 3 строчки

------------------------

== "true"
--9 символов + 0 строчек
 

kin4stat

mq-team · kin4@naebalovo.team
Всефорумный модератор
2,731
4,717
Зачем мне забивать код одноразовыми функциями? Если я хочу что то изменить нужно каждый раз их искать и взглянув на функцию можно не понять что она делает.
И в смысле его функция занимает меньше места?
Lua:
local function isTrue(var)
    return var == "true"
end

isTrue()
--61 символа + 3 строчки

------------------------

== "true"
--9 символов + 0 строчек
3 строки. Будешь использовать больше 3 раз, и функция уже профитнее. Также функция дает возможность при корректировке допустим одного true на false, не придется изменять все вхождения. Вообщем спорить можно бесконечно
 

Tema05

Известный
Автор темы
1,443
403
3 строки. Будешь использовать больше 3 раз, и функция уже профитнее. Также функция дает возможность при корректировке допустим одного true на false, не придется изменять все вхождения. Вообщем спорить можно бесконечно
61 / 9 будет побольше 3
 

Double Tap Inside

Известный
Проверенный
1,900
1,255
Lua:
function strbool(str)
    if str == "true" then
        return true
   
    elseif str == "false" then
        return false
    end
end

if strbool("false") then
  print("0")

else
  print("1")
end

Но я все равно нихуя не понял куда ты хочешь это вставить. Конкретный пример бы.
Если ты Json используешь, то можно из json-строки декодировать в Lua-boolean
Lua:
bool_true = decodeJson("true")
bool_false = decodeJson("false")
 
Последнее редактирование: