Wpis z mikrobloga

  • 4
Czyli to jest po prostu tj. skrót, żeby nie musieć pisać:


if(isCar==true) {
... coś tam
}
else {
... coś tam (gdy jest fałsz)
}

Po prostu to działa na zainicjowanej wartości, jeśli wyżej podany jest boolean "isCar = false;", to wtedy wykona false.
Dobrze rozumiem?

@Yakooo trochę inaczej. Jeśli chcesz zapisać inaczej ten przykład to będzie to:
If(isCar){
return true;
else{
return false;
}
Pomijam zasadność takiego zapisu, tak jak
  • Odpowiedz
@Yakooo: (pseudokod w c, wybacz syntax :P)

masz zmienną np thing oraz masz druga zmienną np "needDriver" i ta zmienna jest bool - może być true albo false.
masz opcję z if :
if(thing==CAR){needDriver=true;} ......

ale możesz zrobić warunkowe przypisanie:
needDriver=(thing==CAR) ? true : false; // needDriver=(thing==CAR) ale to nie jest czytelne - nie weisz czy to literówka programisty czy faktyczie warunek

w twoim przypadku przypuszczam, że mamy coś w stylu
  • Odpowiedz
via Android
  • 0
@MrDracek dokładnie tak, robię sobie Tima Buchalkee na Udemy żeby jakos sobie uzupełnić braki po semestrze, aczkolwiek ternary expression tylko kiedyś widziałem na jakimś tutorialu i za bardzo go nie rozumiałem. Teraz właśnie oglądałem u Tima i też właśnie nie za bardzo rozumiałem jej funkcjonalności no i stad było moje pytanko :p.
  • Odpowiedz
via Wykop Mobilny (Android)
  • 5
@Yakooo: jest to skrótowa wersja funkcji if-else tylko wyjaśnienie w formie takiej jak wkleiłeś jest z dupy i wprowadza w błąd.
Jeśli wynikiem if checka jest true, to odpali się to co masz po lewej stronie dwukropka, jeśli false to po prawej. Więc tak, dobrze rozumiesz.
A poza tym to używaj tego jak najmniej please, bo w kodzie produkcyjnym przy normalnej aplikacji takie coś jest mało czytelne.
  • Odpowiedz
via Wykop Mobilny (Android)
  • 1
@Mave:

A poza tym to używaj tego jak najmniej please, bo w kodzie produkcyjnym przy normalnej aplikacji takie coś jest mało czytelne.


Bez przesady. Ja używam często pisząc w C. Na przykład

printf("device %s\n", enabled?"ON":"OFF")
I w zależności od zmiennej enabled wypisze mi

device is ON

lub

device is OFF


To o wiele szybciej i czytelniej niż pisać if/else
  • Odpowiedz
via Android
  • 0
@deadIift ale to nie było zadne moje rozwiązanie :p
Po prostu nie rozumiałem zagadnienia samego w sobie a to był przykład z kursu. Miałem już kiedyś styczność z tym i nie za bardzo wiedziałem jak to działa, jako że znowu na to trafiłem chciałem się dopytać :D
  • Odpowiedz
@Yakooo: w nowszych językach to nie jest potrzebne, bo coraz popularniejszym podejściem jest "everything is an expression" (co ciekawe Java specialnie z tego zrezygnowała w czasie projektowania języku, co fajnie pokazuje jak mody się zmieniają w programowaniu). Przykładowo w kotlinie można zrobić val x = if (a) {1} else {2}. Java swój ternary opearator ?: odziedziczyła po prostu po języku C, który też miał taką funkcjonalność.
  • Odpowiedz
via Android
  • 0
@Saly dzięki za fajna odpowiedź! =]
W zasadzie to wszystkim dziękuję, spojrzałem na to z innej strony i chyba już "wszystko" to co chciałem, wiem =]
  • Odpowiedz
via Android
  • 0
@deadIift czy ja wiem, wydaje mi się że czytelność kodu i jakaś optymalizacja kodu jest dość ważna sprawa jeśli chodzi o pracę programisty :D
  • Odpowiedz