Następna część poznawania sztuczek na wartości "null" rozpoczęta! Niniejszy artykuł może wzbudzić nieco większą ciekawość z powodu pewnej niespodzianki. Dowiecie się jak operator Elvis w języku Kotlin może nam pomóc rozprawiać się "z bugami" spowodowanymi przez wartości "null", a także co ma z tym wspólnego popularny "Król Rock and Rolla" lat .50 XX wieku!

OPERATOR ELVIS W JĘZYKU KOTLIN "PRZYJAŹNI SIĘ" Z OPERATOREM WARUNKOWYM

Odsuwając na bok te metafory, chodzi o jedną istotną cechę. Istotnie, operator Elvis działa bardzo podobnie jak szerzej znany operator trójargumentowy, lecz jego spektrum ogranicza się tylko do jednego warunku: czy obiekt jest równy "null", czy nie. Tak wygląda prosty przykład:

val s : String? = "Cebula"
val length = s?.length ?: 0

Co fakt, to fakt. W Javie to nic nowego, gdyż wystarczy zastosować operator trójargumentowy i mamy to samo:

String s = "Cebula";
int length = (s != null) ? s.length : 0;

Ciężko jednak się nie zgodzić, że sprzyja to ponownie skra-ca-niu. Pamiętajcie, że operator Elvis w języku Kotlin to NIE JEST zastępca operatora warunkowego! Jeśli chcemy zdefiniować inną zależność, to stosujemy ten sam operator warunkowy, który nie został wykreślony z listy obecności w Kotlinie, tylko przetransformowany na wyrażenie "if"!

var isLongWord = if(length >= 5) "To długie słowo" else "To krótkie słowo"

Po powyższych wyjaśnieniach można wydedukować, iż chodzi o przypisanie jednej z dwóch wartości w jednej instrukcji, w zależności od aktualnej referencji obiektu akceptującego wartość pustą. Do tego się sprowadza operator Elvis w języku Kotlin, pisząc prostymi słowy. Drogi są dwie:

  • jeżeli sprawdzany obiekt jest różny od "null", wtedy przypisywana jest wartość przed operatorem
  • jeżeli sprawdzany obiekt jest równy "null", przypisywana jest wówczas wartość podana PO operatorze Elvis
Operator Elvis w języku Kotlin

Operator Elvis w języku Kotlin to najkrócej pisząc operator trójargumentowy przystosowany wyłącznie do przypisania jednej z dwóch wartości zależnie od wartości "null" występującej w sprawdzanym obiekcie.

NAZWA OPERATORA NIE WZIĘŁA SIĘ ZNIKĄD

Na deser, zostawiam ciekawostkę. Nazwa posiada wyjątkowe pochodzenie bowiem powstała ona od Elvisa Presleya, ze względu na podobieństwo do jego wizerunku kiedy ten operator ustawi się "pionowo". Chodzi o kształt włosów i parę oczu. W taki sposób powstał operator Elvis!

Why it's called the Elvis operator?

Nazwa operatora została nadana na cześć Elvisa Presleya przez wzgląd na charakterystyczne ułożenie włosów i parę oczu.

Źródło: GlobalNerdy


Dziękuję za poświęcony czas i pełne przeczytanie! W taki sposób "Król Rock and Rolla" może nam pomóc w walce z ekspresowym przypisaniem jednej z dwóch wartości, w zależności od występowania wartości "null" czy też nie.

PODOBNE ARTYKUŁY