Bonjour,
Je débute en Lua, et je me fais une formation accélérée en essayant d’améliorer le support des maths dans SILE.
En lisant du code, j’ai repéré ce genre de choses :
self.height = self.base and self.base.height or 0
Je ne comprends pas le côté droit de l’affectation. J’ai supposé que ça voulait dire « si self.base
est défini, alors l’expression vaut self.base.height
, sinon elle vaut 0
».
Le problème, c’est que je ne comprends pas l’idée derrière cette syntaxe, qu’est-ce que les opérateurs and
et or
viennent faire là alors que l’opération n’a rien à voir avec la logique. Est-ce qu’il s’agit d’une version bizarre de l’opérateur ternaire ?
Merci d’avance.
+0
-0