Ku zaskoczeniu, bowiem nie było to wcześniej zapowiadane, a i samo YYG zapomniało wspomnieć w release notes przy okazji pierwszej listopadowej bety (teraz są one wydawane w każdy wtorek i czwartek), w GML pojawiły się dwie nowe funkcjonalności.
Pierwsza to tzw. null coalescing operator, czyli operator nadający wartość gdy zmienna jest pusta (w przypadku GML nie mamy Nulla, więc bardziej odpowiednie będzie powiedzenie - niezdefiniowana).
W GMS 2.0 - 2.3.6 zapisalibyśmy to tak:
koda = is_undefined(b) ? 5 : b;Tymczasem w wersji 2.3.7 można prościej:
koda = b ?? 5;Można to czytać jako: ustaw a jako b, no chyba, że b nie ma wartości, to wtedy 5.
Oczywiście, są też przypadki, gdy chcielibyśmy to samo zrobić ale dla tej samej zmiennej, więc i tutaj doszedł nowy operator:
koda = is_undefined(a) ? 5 : ateraz można skrócić do:
koda ??= 5Co można odczytać jako: jeśli a nie jest jeszcze zdefiniowane, to ustaw 5.
Drugą zmianą jest pomijanie argumentów funkcji, aby użyć domyślnej wartości.
Jeśli mielibyśmy taką funkcję: kodfunction costamcostam(a, b = 5, c = 14, d = 19){};To chcą ustalić jedynie wartości a i d, musimy ręcznie przepisać domyślne wartości b (=5) i c (=14), co może być kłopotliwe, gdy z jakiegoś powodu zechcemy kiedyś zmienić domyślne wartości. Teraz wystarczy argument... pominąć, nie podając żadnej wartości. Zakładając więc, że a i d chcemy ustawić na 1, zamiast:
kodcostam(1, 5, 15, 1)możemy napisać:
kodcostam(1,,,1);
Te dwie niewielkie zmiany wbrew pozorom mogą okazać się bardzo przydatne.
Beta 2.3.7 dodaje nowe możliwości programistyczne!
środa, 10 Listopada 2021, 00:06