Sobes.tech
Junior — Middle

Explique o princípio de funcionamento da função hash e seu uso

sobes.tech IA

Resposta da IA

Uma função hash é uma função que aceita dados de tamanho arbitrário e retorna um hash de tamanho fixo (geralmente um número ou uma string). A principal propriedade de uma função hash é que a mesma entrada sempre fornece a mesma saída, e uma pequena alteração nos dados de entrada altera significativamente o resultado.

No Flutter (e na programação em geral), as funções hash são frequentemente usadas para comparar objetos rapidamente, por exemplo, ao armazená-los em coleções como Set ou Map. Em vez de comparar todos os campos do objeto, comparam-se seus códigos hash.

Exemplo de uso em Dart:

class Person {
  final String name;
  final int age;

  Person(this.name, this.age);

  @override
  bool operator ==(Object other) =>
      identical(this, other) ||
      other is Person && name == other.name && age == other.age;

  @override
  int get hashCode => name.hashCode ^ age.hashCode;
}

Aqui, hashCode combina os hashes dos campos para obter um hash único do objeto. Isso acelera as operações com coleções e ajuda a encontrar objetos rapidamente.