J'ai une valeur qui sera l'une des quatre choses suivantes: boolean true, boolean false, la chaîne "true" ou la chaîne "false". Je veux convertir la chaîne en booléen s'il s'agit d'une chaîne, sinon laissez-la inchangée. En d'autres termes:
"vrai" devrait devenir vrai
"false" devrait devenir faux
vrai devrait rester vrai
false doit rester faux
!!(if input == 'false' then true else input end). Le second !convertit la valeur de retour en un booléen qui est l'opposé de ce que vous voulez; le premier !fait alors la correction. Ce "truc" existe depuis longtemps. Tout le monde ne l'aime pas.
trueoufalseou est - il suffisant si le résultat est truthy ou Falsey? Si ce dernier, alorsfalseest déjà faux, et les deuxtrueet'true'sont véridiques, donc la seule valeur pour laquelle le résultat n'est pas déjà correct est'false':if input == 'false' then true else input enddevrait le faire.