Являются ли все неизменяемые объекты идентичными в dart, если они имеют одинаковые значения?

#flutter #dart

#flutter #dart

Вопрос:

Как оператор int, double, string override ==, имеет ли это какое-либо отношение к идентификатору? Поскольку они всегда идентичны, если их сравнивать с переменными, имеющими то же значение и тип данных, что и theres

Ответ №1:

Сравнение числа и строки, содержащей число

Строки не могут быть равны числам, даже если они выглядят одинаково. Сначала нам нужно преобразовать строку в int, и только тогда они будут равны.

 void main() {
  var x = 23;
  var y = "23";
  if (x == y) 
    print("string and int are not equal");

  if (x == int.parse(y)) 
    print("Converted string equals to int");

  if (x.toString() == y)
    print("Int converted to string also works");
}
 

Неизменяемые шаблоны данных в Dart и Flutter подробно объясняют неизменяемые конструкции данных.

Комментарии:

1. Я хотел сказать, что int, double ,string когда имеют одинаковые значения того же типа, что и theres, и при сравнении дают одинаковые значения true, пожалуйста, рассмотрите мой вопрос еще раз и ответьте

2. Не могли бы вы привести пример и объяснить на основе этого?