В чем смысл: ballDX = math.random(2) == 1 и 100 или -100

Я изучаю, как сделать игру в понг с курсом разработки игр CS50. Но я не знаю, в чем смысл

ballDX = math.random(2) == 1 and 100 or -100

person Manish Swami    schedule 04.04.2020    source источник
comment
nachtimwald.com/2019/02/20/lua-ternary   -  person ggorlen    schedule 04.04.2020
comment
Вы получите либо 100, либо -100   -  person tonypdmtr    schedule 04.04.2020


Ответы (1)


Это означает, что ballDX получит только два случайных значения: 100 или -100.

  • Если math.random(2) возвращает 2, то утверждение 2 == 1 and 100 будет ложным, ballDX получает значение false or -100, это означает -100.
  • если math.random(2) возвращает 1, то утверждение 1 == 1 and 100 будет истинным, ballDX получает значение 100 or -100, это означает, что он получает первую истинную переменную, это означает 100.
person StasN    schedule 10.04.2020