Junior
Šta su opcije i kakvu ulogu igraju u jeziku Swift?
sobes.tech АИ
Одговор од АИ
Опционал у Swift је тип који може садржати вредност или не (бити nil).
Улоге опционала:
- Обрада одсуства вредности (nil-сигурност).
- Превенција грешака при приступу nil током извршавања (crash).
- Јасно дефинисање у коду где вредност може недостајати.
Главни концепти:
- Декларација опционала:
ValueType?илиOptional<ValueType> - Додела nil: опционалу се може доделити
nil. - Принудно распакивање (
!): извлачи вредност ако постоји, у супротном изазива фаталну грешку. - Опционално везивање (
if let,guard let): безбедно извлачи вредност ако нијеnil, креирајући привремену константу или варијаблу. - Опционални ланац (
?.): омогућава безбедно позивање метода, приступ својствима или индексима опционала. - Оператор спајања са nil (
??): пружа подразумевану вредност ако је опционалnil.
Примери употребе:
// Декларација опционалног Int
var age: Int?
// Додела вредности
age = 30
// Принудно распакивање (несигурно ако age == nil)
// let unwrappedAge = age!
// Опционално везивање са if let
if let currentAge = age {
print("Године: \(currentAge)") // Извршава се ако age није nil
} else {
print("Непознате године") // Извршава се ако је age nil
}
// Опционални ланац
struct Person {
var name: String
var address: Address?
}
struct Address {
var street: String
}
var person: Person? = Person(name: "Alice", address: Address(street: "Main St"))
// Покушај добијања улице преко опционалног ланца
let streetName = person?.address?.street // streetName ће бити String?
// Оператор спајања са nil
let displayedStreet = streetName ?? "Непозната улица"
print(displayedStreet) // Исписа "Main St"