Забони барномасозии iOS навъст?
sobes.tech AI
Ҷавоб аз AI
Бале, ин дуруст аст. Swift ва Objective-C (забонҳои асосии таҳия барои iOS/macOS) забонҳои бо намуди қавӣ мебошанд.
Дар забонҳои бо намуди қавӣ, намудҳои тағйирёбандаҳо ё дар вақти компилятсия (намуди статикӣ, мисли Swift), ё дар вақти иҷро (намуди динамикӣ, дар Objective-C) маълуманд. Ин кӯмак мекунад, ки хатоҳои зиёде, ки бо номувофиқии намудҳо алоқаманданд, пеш аз оғози барнома ошкор шаванд.
Афзалиятҳои намуди:
- Бехатарӣ: Аз хатоҳои бо намудҳои номувофиқ пешгирӣ мекунад.
- Иҷроӣ: Компилятор метавонад кодро оптимизатсия кунад, донистани намудҳои додаҳо.
- Фаҳмондадиҳӣ: Ифодаи равшан аз намудҳо фаҳмиши коди беҳтар мекунад.
- Дастгирии воситаҳо: IDEҳо беҳтар автоматӣ пур кардан ва рефакторингро пешниҳод мекунанд.
Swift забони бо намуди статикӣ аст, ки маънои онро дорад, ки санҷиши намудҳо дар вақти компилятсия сурат мегирад. Objective-C дорои элементҳои ҳам намуди статикӣ ва ҳам динамикӣ мебошад (масалан, пайвастагии дер).
Масалан, намунаи намуди статикӣ дар Swift:
// swift
let number: Int = 10 // Ифодаи равшан аз намуди Int
// let text: String = number // Хатои компилятсия: Наметавон арзиши намуд 'Int'-ро ба 'String' таъин кард
Масалан, намунаи намуди динамикӣ (полиморфизм) дар Objective-C:
// objective-c
id object = [[NSString alloc] initWithFormat:@"Hello"];
// object метавонад ҳар объектро дар бар гирад. Намуд дар вақти иҷро ҳангоми фиристодани паём санҷида мешавад.
NSString *stringObject = object; // Casting, аммо намуди асосӣ id аст, ки чандир аст