Junior — Middle
Hash cədvəlində istifadə üçün hansı açar növü məlumatlar icazə verilir?
sobes.tech Süni İntellekt
AI-dan cavab
Hash cədvəllərində (məsələn, Flutter-də istifadə olunan Dart-da) açarlar hər hansı bir növ obyekt ola bilər, şərt odur ki, onlar hashCode və == metodlarını düzgün şəkildə həyata keçirirlər. Bu, düzgün hash dəyərinin hesablanması və açarların müqayisəsi üçün vacibdir.
Ən çox istifadə olunan növlər primitiv tiplərdir, məsələn, sətirlər (String), ədədlər (int), lakin bu metodlar yenidən yazılırsa, xüsusi sinflər də istifadə oluna bilər. Məsələn:
class Person {
final String name;
final int id;
Person(this.name, this.id);
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is Person && runtimeType == other.runtimeType && id == other.id;
@override
int get hashCode => id.hashCode;
}
void main() {
var map = <Person, String>{};
var p = Person('Alice', 1);
map[p] = 'İnkişafçı';
print(map[p]); // İnkişafçı
}
Buna görə, açarlar dəyişməz olmalı və hashCode və == metodları düzgün şəkildə həyata keçirilməlidir.