1
resposta

Não consigo encontrar o erro dos dicionarios

Ola, estou com dificuldade em Dart para comparar dicionarios, ja tentei de tudo, tenho dois maps com exatamente a mesma chave e valor mas se comparo os dois sempre retorna falso. Ja tentei comparar as chaves, os valores e os proprios dicionarios, sempre retorna falso.

void main() {
  
  Map<String, dynamic> dict1 = {'Bit32': [1, 1, 1, 1, 1]};
  Map<String, dynamic> dict2 = {'Bit32': [1, 1, 1, 1, 1]};

print(dict1 == dict2 )

}
1 resposta

Opa Lucas, tudo certo?

No Dart, quando comparamos dois mapas usando o operador '==' estamos verificando se os dois objetos são o mesmo objeto, e não se eles contêm os mesmos dados. No seu caso, dict1 e dict2 são dois objetos diferentes, embora contenham os mesmos dados.

Neste caso, sugiro que tente comparar se os dois mapas contêm os mesmos dados utilizando a função mapEquals da biblioteca foundation ou MapEquality da colletion. Deixo como recomendação a documentação em inglês:

Fico à disposição.

Tenha um bom dia e bons estudos.