Junior
Mis on valikud ja millist rolli nad Swift keeles mängivad?
sobes.tech AI
Vastus AI-lt
Swiftis on valikuline tüüp, mis võib sisaldada väärtust või mitte (olla nil).
Valikuliste roll:
- Väärtuste puudumise töötlemine (nil-turvalisus).
- Viga pääseda nil-ile täitmise ajal (krahhid).
- Selge määratlus koodis, kus väärtus võib puududa.
Põhikonceptsioonid:
- Valikulise deklareerimine:
ValueType?võiOptional<ValueType> - Nil-i omistamine: valikulisele võib omistada
nil. - Sunni avamine (
!): võtab väärtuse, kui see on olemas, vastasel juhul põhjustab fataalse vea. - Valikulise sidumine (
if let,guard let): turvaliselt võtab väärtuse, kui see ei olenil, luues ajutise konstant või muutuja. - Valikulise ahela (
?.): võimaldab turvaliselt kutsuda meetodeid, saada omadusi või viidata indeksitele valikulisel. - Nil-i ühendusoperaator (
??): pakub vaikimisi väärtust, kui valikuline onnil.
Kasutusnäited:
// Valikulise Int deklareerimine
var age: Int?
// Väärtuse omistamine
age = 30
// Sunni avamine (`!`) (pole turvaline, kui age == nil)
// let unwrappedAge = age!
// Valikulise sidumine with if let
if let currentAge = age {
print("Vanus: \(currentAge)") // Täidetakse, kui age ei ole nil
} else {
print("Vanus on teadmata") // Täidetakse, kui age on nil
}
// Valikulise ahela
struct Person {
var name: String
var address: Address?
}
struct Address {
var street: String
}
var person: Person? = Person(name: "Alice", address: Address(street: "Main St"))
// Katse saada tänava nime valikulise ahela kaudu
let streetName = person?.address?.street // streetName on String?
// Nil-i ühendusoperaator
let displayedStreet = streetName ?? "Teadmata tänav"
print(displayedStreet) // Kuvab "Main St"