Jest idealnie ważne, aby mieć:
if (0 == var) {}
and
if (null == someObj) {}
To słynne nazywa yoda condition, aby zapobiec przypadkowym użyciem pojedynczego =
zamiast ==
.
Ja osobiście nigdy z niego nie korzystałem. Ale niektórzy to lubią. To naprawdę kwestia gustu.
Jednak w Jawie nie ma sensu. Ponieważ taka przypadkowa literówka zostaje złapana podczas kompilacji.
Poniżej podano błąd kompilacji w Javie.
if(var = 0)
{
//Some code
}
Ponieważ operacja przypisania nie daje wartości Boolean w Javie. Jednak w językach takich jak C/C++ powyższe jest prawidłowe i kompilator nie dałby żadnych błędów, gdyby ostrzeżenia nie były włączone. Powyższy warunek if
zawsze będzie oznaczał fałsz (0) w C/C++. Może to pozostać niezauważone i dać nieoczekiwane wyniki w czasie wykonywania.
W GCC, z włączonym wszystkie ostrzeżenia, to dać ostrzeżenie dla powyższego w C lub C++:
warning: suggest parentheses around assignment used as truth value
Więc może to nie stanowi większego zastosowania w C/C++ też jako jeden oczekuje się skompilować ze wszystkimi ostrzeżeniami i napraw wszystkie ostrzeżenia. Jak już powiedziałem, jest to osobisty wybór i nie ma znaczenia.
Tak if (0 == var){}
jest prawidłową składnią i jest taka sama jak if (var == 0) {}
, a jeśli wolisz Yoda, możesz to zrobić!
Znalazłeś kod napisany w Javie. Zmień to, co chcesz. – EJP
Jeśli niebieski jest niebem ... –