Junior — Middle
Кадом намудҳои додаҳо ё объектҳо метавонанд ҳамчун калидҳо дар луғатҳо ё хештаблиҳо амал кунанд?
sobes.tech AI
Ҷавоб аз AI
Дар словарҳо (dictionary) ё ҷадвалҳои ҳеш, калидҳо метавонанд объектҳое бошанд, ки ба талаботи зерин ҷавобгӯ бошанд:
- Методи муқоисаи баробарӣ (
equalsдар Java,isEqualдар Swift) ва ҳисоб кардани коди ҳеш (hashCodeдар Java) дуруст татбиқ шудаанд. - Онҳо тағирнопазир (immutable) ё ҳадди аққал пас аз истифода ҳамчун калид тағир намеёбанд, то мушкилоти ҷустуҷӯро пешгирӣ кунанд.
Дар iOS (Swift), дар луғатҳо (Dictionary) одатан намудҳое истифода мешаванд, ки протоколи Hashable-ро мувофиқат мекунанд. Инҳо метавонанд:
- намудҳои стандартӣ:
String,Int,Double,Bool. - сохторҳо ё синфҳои махсус, ки протоколи
Hashable-ро татбиқ мекунанд.
Масалан:
struct Person: Hashable {
let id: Int
let name: String
}
var dict: [Person: String] = [:]
dict[Person(id: 1, name: "Alice")] = "Developer"
Аз ин рӯ, калидҳо бояд ҳешшаванда ва тағирнопазир бошанд, то кори дурустии луғат таъмин шавад.