Lua'da anlamadığım değişken beyanı
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
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