Junior
Nima uchun opsionallar va ular Swift tilida qanday rol o'ynaydi?
sobes.tech AI
AIdan javob
Swift'tə opsiyonel, dəyər saxlaya bilən və ya saxlaya bilməyən (nil ola bilən) bir növdür.
Opsiyonellərin 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ə yaOptional<ValueType> - nil təyin etmək: bir opsiyonelə
niltə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ərnildeyilsə, 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 (
??): opsiyonelnilolarsa, 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