1 of 42

Tehnici avansate pentru

dezvoltarea aplicațiilor mobile

2 - Kotlin - Condiționale, bucle și nullability

2 of 42

Instrucțiuni condiționale

2

3 of 42

Instrucțiunea if

Kotlin - Condiționale, bucle și nullability

3

4 of 42

Instrucțiunea if - exemplu

Kotlin - Condiționale, bucle și nullability

4

5 of 42

Ramura else if

Kotlin - Condiționale, bucle și nullability

5

6 of 42

Ramura else if - exemplu

Kotlin - Condiționale, bucle și nullability

6

7 of 42

Ramuri else if multiple

Kotlin - Condiționale, bucle și nullability

7

8 of 42

Ramuri else if multiple - exemplu

8

9 of 42

Instrucțiunea when

Kotlin - Condiționale, bucle și nullability

9

10 of 42

Instrucțiunea when - ramura else

Kotlin - Condiționale, bucle și nullability

10

11 of 42

Instrucțiunea when - condiții multiple

Kotlin - Condiționale, bucle și nullability

11

12 of 42

Instrucțiunea when - condiții multiple

Kotlin - Condiționale, bucle și nullability

12

13 of 42

Instrucțiunea when - range de condiții

Kotlin - Condiționale, bucle și nullability

13

14 of 42

Instrucțiunea when - range de condiții

Kotlin - Condiționale, bucle și nullability

14

15 of 42

Instrucțiunea when - keyword-ul is

  • is - folosit pentru verificarea tipului de date

Kotlin - Condiționale, bucle și nullability

15

16 of 42

Instrucțiunea when - keyword-ul is

Kotlin - Condiționale, bucle și nullability

16

17 of 42

Instrucțiunea when - fără parametru

  • when poate funcționa similar cu if - else if
  • Putem să nu specificăm un parametru

17

18 of 42

if ca expresie

Kotlin - Condiționale, bucle și nullability

18

19 of 42

if ca expresie - exemplu

Kotlin - Condiționale, bucle și nullability

19

20 of 42

when ca expresie - exemplu

Kotlin - Condiționale, bucle și nullability

20

21 of 42

Bucle

21

22 of 42

Bucla for

Kotlin - Condiționale, bucle și nullability

22

23 of 42

Bucla for - exemple

Kotlin - Condiționale, bucle și nullability

23

24 of 42

Bucla for - exemple

Kotlin - Condiționale, bucle și nullability

24

25 of 42

Bucle while și do-while

  • while verifică condiția și apoi execută
  • do-while întâi execută și apoi verifică condiția

Kotlin - Condiționale, bucle și nullability

25

26 of 42

Nullability

26

27 of 42

Nullability

  • O variabilă null = nu are nicio valoare

  • În Kotlin 2 tipuri de variabile: nullable și non-nullable
    • Variabilele nullable - pot să conțină null
    • Variabilele non-nullable - nu pot sa conțină null

  • Nullability = abilitatea unei variabile de a nu avea o valoare
  • Recomandare: folosiți variabile nullable doar atunci când este nevoie - gestiune mai complexă

Kotlin - Condiționale, bucle și nullability

27

28 of 42

Tip nullable

  • În mod implicit -> tipurile de date non-nullable
  • Pentru a face un tip de date nullable -> adăugat ?
    • Ex: String? poate stoca un String sau null

Kotlin - Condiționale, bucle și nullability

28

29 of 42

Tip nullable - exemple

Kotlin - Condiționale, bucle și nullability

29

30 of 42

Accesarea proprietăților variabilelor nullable

  • Obținem eroare de compilare

Kotlin - Condiționale, bucle și nullability

30

31 of 42

Null safety

  • Null reference = accesarea unei proprietăți sau metode a unei variabile nule
    • Eroare la runtime

  • Kotlin oferă null safety
    • Nu se pot face apeluri pe variabile potențial nule
    • Compilatorul forțează null check înaintea accesării

31

32 of 42

Operatorul safe-call ?.

  • Accesarea în siguranță a proprietăților și metodelor variabilelor nullable

  • Variabilă nulă => compilatorul va opri accesarea proprietății/metodei și va returna null

Kotlin - Condiționale, bucle și nullability

32

33 of 42

Operatorul safe-call ?.

  • Programul nu dă eroare, ci printează null

Kotlin - Condiționale, bucle și nullability

33

34 of 42

Operatorul non-null assertion !!.

    • Pentru a accesa proprietățile/metodele variabilelor nullable
    • Afirm că variabila nu este nulă, indiferent dacă este sau nu
      • Dacă este null -> NullPointerException
      • Când suntem siguri că nu e nulă sau când tratăm excepția
      • Excepția netratată duce la eroare la runtime

Kotlin - Condiționale, bucle și nullability

34

35 of 42

Operatorul non-null assertion - exemplu

  • Al doilea cod va genera o excepție

Kotlin - Condiționale, bucle și nullability

35

36 of 42

Verificare folosind if-else

  • Vom rula un anumit cod doar dacă variabila nu este nulă
  • Dacă avem de rulat mai multe linii de cod

Kotlin - Condiționale, bucle și nullability

36

37 of 42

Expresii if-else

  • Pentru a converti o variabilă nullable într-o variabilă non-nullable

Kotlin - Condiționale, bucle și nullability

37

38 of 42

Expresii if-else - exemplu

Kotlin - Condiționale, bucle și nullability

38

39 of 42

Operatorul Elvis ?:

  • Folosit împreună cu operatorul safe-call
    • Dacă variabila nu este nulă se accesează metoda/ proprietatea
    • Dacă variabila este nulă se execută expresia de după ?:
      • valoare implicită

Kotlin - Condiționale, bucle și nullability

39

40 of 42

Operatorul Elvis - exemplu

  • Dacă variabila e nulă atunci lungimea numelui va fi 0

Kotlin - Condiționale, bucle și nullability

40

41 of 42

Bibliografie

Kotlin - Condiționale, bucle și nullability

41

42 of 42

Cuvinte cheie

  • if
  • else
  • when
  • for
  • while
  • do-while
  • nullable
  • operatorul safe-call
  • operatorul non-null assertion
  • operatorul Elvis

Kotlin - Condiționale, bucle și nullability

42

42