Lua'da anlamadığım değişken beyanı

Sep 27 2020

Biraz Lua okuyordum ve Löve 2D ile kullanmak için küçük bir kurs yapıyordum, bir örnekte verdikleri bir örnekte bu şekilde bir değişken ilan et ki bunu dürüstçe anlamıyorum:

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

Biraz google ve okumaya çalıştım ama bunu özellikle açıklayacak bir yer bulamadım. Açık olanı belirlediğime baktığımda, BallDX 1 ile 2 arasındaki rastgele bir sayıya eşittir, ancak oradan oldukça kafam karıştı, rastgele sayının 1 ve 100'e veya -100'e eşit olması ne anlama geliyor?

Yanıtlar

5 Coal Sep 27 2020 at 06:42

Bu biraz ilginç bir Lua kavramı

Operatör andyanlışsa ilk argümanını döndürür; aksi takdirde ikinci argümanını döndürür.

Operatör oryanlış değilse ilk argümanını döndürür; aksi takdirde ikinci argümanını döndürür

Bu durumda math.random(2) == 1 and 100 or -100tam olarak üçlü bir operatör gibi davranır, şu ifadeye çevrilebilir:

If math.random(2) equals to 1, set ballDX = 100, otherwise set ballDX = -100

Örneğin, adında bir değişkeniniz colduğunu ve adeğişken 10'un üzerindeyse ona bir değer atamak istediğinizi varsayalım , üçlü bir operatörle şunu yaparsınız:c = a > 10 ? a : b

Lua'da kullanırdın c = a > 10 and a or b