Sobes.tech
Junior

Opsionallar nədir və Swift dilində hansı rolu oynayırlar?

sobes.tech Süni İntellekt

AI-dan cavab

Swift-də opsional, dəyər saxlaya bilən və ya saxlaya bilməyən (nil ola bilən) bir növdür.

Opsionaların rolları:

  • Dəyərin olmamasını idarə etmək (nil təhlükəsizliyi).
  • İcra zamanı nil-ə girişdəki səhvlərin qarşısını almaq (crash).
  • Kodda dəyərin itə biləcəyi yerləri aydın şəkildə müəyyən etmək.

Əsas anlayışlar:

  • Opsiyonel elan: ValueType? və ya Optional<ValueType>
  • nil təyin etmək: bir opsiyonelə nil təyin etmək mümkündür.
  • Zorunlu açma (!): dəyəri çıxarır, əgər mövcuddursa, yoxsa ölümcül səhv yaradır.
  • Opsiyonel bağlama (if let, guard let): dəyəri təhlükəsiz şəkildə çıxarır, əgər nil deyilse, müvəqqəti sabit və ya dəyişən yaradır.
  • Opsiyonel zənciri (?.): metodları çağırmağa, xüsusiyyətlərə və ya indekslərə təhlükəsiz giriş imkanı verir.
  • nil ilə birləşdirmə operatoru (??): opsiyonel nil olarsa, standart dəyər təqdim edir.

İstifadə nümunələri:

// Opsiyonel Int elan etmək
var age: Int?

// Dəyər təyin etmək
age = 30

// Zorunlu açma (təhlükəsiz deyil, əgər age == nil)
// let unwrappedAge = age!

// if let ilə opsiyonel bağlama
if let currentAge = age {
    print("Yaş: \(currentAge)") // Əgər age nil deyilsə, işləyəcək
} else {
    print("Yaş məlum deyil") // Əgər age nil olarsa, işləyəcək
}

// Opsiyonel zənciri
struct Person {
    var name: String
    var address: Address?
}

struct Address {
    var street: String
}

var person: Person? = Person(name: "Alice", address: Address(street: "Main St"))

// Opsiyonel zənciri ilə küçəni almağa cəhd
let streetName = person?.address?.street // streetName String?

// nil ilə birləşdirmə operatoru
let displayedStreet = streetName ?? "Naməlum küçə"
print(displayedStreet) // "Main St" çap edəcək