Ho un valore che sarà una delle quattro cose: boolean true, boolean false, la stringa "true" o la stringa "false". Voglio convertire la stringa in un booleano se è una stringa, altrimenti lasciarla non modificata. In altre parole:
"vero" dovrebbe diventare vero
"false" dovrebbe diventare falso
vero dovrebbe rimanere vero
false dovrebbe rimanere false
!!(if input == 'false' then true else input end)
. Il secondo !
converte il valore restituito in un booleano che è l'opposto di quello che vuoi; il primo !
poi fa la correzione. Questo "trucco" esiste da molto tempo. Non a tutti piace.
true
ofalse
o è sufficiente se il risultato è truthy o Falsey? Se quest'ultimo, allorafalse
è già falso, ed entrambitrue
e'true'
sono veri, quindi l'unico valore per il quale il risultato non è già corretto, è'false'
:if input == 'false' then true else input end
dovrebbe farlo.