默认情况下,int、double、String常量在dart中被规范化了吗


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
}

最新更新