Sobes.tech
Junior — Middle

Ar galima palyginti Optional tipo objektus kode?

sobes.tech AI

Atsakymas iš AI

Swift'e, Optional tipo objektai gali būti lyginami tarpusavyje, jei jų įkapsuliuoto tipo palaiko lyginimą. Pavyzdžiui, jei turite Optional<Int>, galite naudoti operatorius == ir != jų palyginimui.

Lyginimas veikia taip:

  • Jei abu reikšmės yra nil, jie laikomi lygiais.
  • Jei vienas yra nil, o kitas ne, jie nėra lygūs.
  • Jei nė vienas nėra nil, lyginamos vidinės reikšmės.

Pavyzdys:

let a: Int? = 5
let b: Int? = 5
let c: Int? = nil

print(a == b) // true
print(a == c) // false
print(c == nil) // true

Jei tipas nepalaiko lyginimo, tiesiogiai lyginti tokio tipo Optional nėra įmanoma.