Middle+
Актёр чист?
sobes.tech AI
Ҷавоб аз AI
Актор (Actor) дар Swift — навъе, ки ҳолати худро изолятсия мекунад, пешгирӣ мекунад дастрасии ҳамзамон аз сӯйи шохаҳои гуногун ва бо ин роҳ ҷанги маълумотро бартараф мекунад.
Хусусиятҳои асосӣ:
- Изолятсияи ҳолат: Ҳамаи хосиятҳои актор танҳо аз дохили методҳои он ё аз дигар акторҳо бо модификаторҳои дастрасии мувофиқ дастрасанд.
- Интерфейси асинхронӣ: Зангҳои ба методҳои актор аз берун ҳамеша асинхрон мебошанд ва талаб мекунанд
await. Ин кафолат медиҳад, ки дастрасӣ ба ҳолат атомӣ аст. - Бе мерос: Акторҳо мерос намегиранд.
- Намудани
nonisolated let: Хосиятҳо метавонанд ҳамчунnonisolatedнишон дода шаванд, агар онҳо константаҳо (let) бошанд ва намудҳои бехатар барои шоха дошта бошанд. Ин имкон медиҳад, ки ба онҳо беawaitдастрасӣ пайдо шавад.
Масалан:
actor Counter {
private var value = 0
func increment() {
value += 1
}
func getValue() -> Int {
return value
}
}
Истифода:
// Занг асинхрон талаб мешавад бо сабаби изолятсия
let myCounter = Counter()
await myCounter.increment()
let currentValue = await myCounter.getValue()
Акторҳо қисми калидии модели навтарини рақобат дар Swift мебошанд, ки роҳи бехатар ва сохторӣ барои идоракунии ҳолати тағйирёбандаи муштарак дар барномаҳои бисёртредро пешниҳод мекунанд.