Junior — Middle
Որ տվյալների կամ օբյեկտների տեսակները կարող են հանդես գալ որպես բանալի բառարաններում կամ հեշ-թերթերում?
sobes.tech AI
Պատասխան AI-ից
Սլաքների (dictionary) կամ հեշ աղյուսակների մեջ բանալիները կարող են լինել օբյեկտներ, որոնք բավարարում են հետևյալ պահանջներին՝
- Ունեն ճիշտ իրականացված համեմատության մեթոդներ (
equalsJava-ում,isEqualSwift-ում) և հեշ-կոդի հաշվարկ (hashCodeJava-ում): - Են անփոփոխ (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"
Ահա թե ինչու՝ բանալիները պետք է լինեն հեշ-համատեղելի և անփոփոխ, որպեսզի բառարանը ճիշտ աշխատի։