Junior — Middle
Мо метавонед шарҳ диҳед, ки истифодаи оператори фишор дар Swift чӣ маъно дорад ва чаро он хатарнок аст?
sobes.tech AI
Ҷавоб аз AI
Дар Swift оператори маҷбурии бозгашт (force unwrap) бо нишони изолятор ! пас аз арзиши интихобӣ нишон дода мешавад. Ин барои гирифтани арзиши интихобӣ истифода мешавад, бо тахмин, ки он nil нест.
Масалан:
let optionalString: String? = "Hello"
let forcedString: String = optionalString! // маҷбурии бозгашт
Хатар ин аст, ки агар арзиши интихобӣ nil бошад, бозгашти маҷбурӣ дар вақти иҷрои барнома ба сустӣ меорад. Аз ин рӯ, ! бояд танҳо вақте истифода шавад, ки шумо боварӣ доред, ки арзиш nil нест.
Беҳтар аст, ки бо истифода аз if let ё guard let бозгашти бехатарро истифода баред, то хатогиҳоро пешгирӣ кунед.