Tengo un valor que será una de cuatro cosas: booleano verdadero, booleano falso, la cadena "verdadero" o la cadena "falso". Quiero convertir la cadena en un booleano si es una cadena; de lo contrario, déjela sin modificar. En otras palabras:
"verdadero" debería convertirse en realidad
"falso" debería convertirse en falso
la verdad debería permanecer verdad
lo falso debe permanecer falso
!!(if input == 'false' then true else input end)
. El segundo !
convierte el valor de retorno a un booleano que es el opuesto al que desea; el primero !
luego hace la corrección. Este "truco" existe desde hace mucho tiempo. No a todo el mundo le gusta.
true
ofalse
o es suficiente si el resultado es Truthy o Falsey-? Si el último, entoncesfalse
ya es falso, y ambostrue
y'true'
son veraces, por lo que el único valor para el que el resultado no es ya correcto es'false'
:if input == 'false' then true else input end
debería hacerlo.