1
resposta

[Dúvida] Utilização do is

Olá, eu não entendi muito bem, porque usar is, entendo que o == seja para comparar tipos e o state e o HomeError sejam de tipos diferentes, mas qual é o tipo do state e do HomeError, sei que o HomeError é uma classe

1 resposta

O operador is é usado para verificar se um objeto é de um determinado tipo. O operador == é usado para comparar o valor de dois objetos.

No código que você forneceu, state é uma variável do tipo State. HomeError é uma classe.

A linha if (state is HomeError) verifica se state é um objeto do tipo HomeError. Se for, o código no bloco if será executado. Se não for, o código no bloco else será executado.

A linha if (state == HomeError) verifica se o valor de state é igual ao valor de um objeto do tipo HomeError. Se for, o código no bloco if será executado. Se não for, o código no bloco else será executado.

No seu caso, você está usando o operador is porque só quer saber se state é um objeto do tipo HomeError. Você não está interessado em comparar o valor de state com o valor de um objeto do tipo HomeError.

Espero que isso ajude!