void main(){
int a=3;
int b=3;
print(identical(a,b));
返回真实
double c=3.2;
double d=3.2;
print(identical(c,d));
返回true,与字符串类型相同
List l1=[1,2,3];
List l2=[1,2,3];
print(identical(l1,l2));
}
但是for列表返回false。怎样正如int、double、string override==运算符所做的那样,这与这些类型的相同返回true有任何关系。
您得到了false,因为列表是具有长度的对象的可索引集合。在相同的检查中,两个实例是否相同,但可以将此实例转换为字符串。
List l1 = [1, 2, 3, 4];
List l2 = [1, 2, 3, 4];
print(identical(l1.toString(), l2.toString())); //true
对于列表比较,您可以使用listEquals
import 'package:flutter/foundation.dart';
void main() {
List<int> l1 = [1, 2, 3,4];
List<int> l2 = [1, 2, 3, 4];
print(listEquals(l1, l2)); //true
}