列表 != 列表 != 列表<int> <String> != 列表 如何<dynamic>确保类型 == 列表在 dart 中返回 true



listType(example) {
var x = example.runtimeType;
if (x == List) { 
return true;
} else {
return false;
}
}
print(listType([1, 2, 3, 4]));

您可以将交换x==List与x==List<int>看看区别!!!

只要返回类型是列表,我如何使runtimeType始终返回true?

如果您想检查类型,请使用is,而不要使用runtimeType,因为它会使x成为非list<int>的类型,如下所示:

listType(example) {

if (example is List) { //<--- here
return true;
} else {
return false;
}
}
bool listType<T>(example){
return example is List<T>;
}

示例:

print(listType<int>([1,2,3])) //true
print(listType<dynamic>([1,2,3])) //true
print(listType([1,2,3])) //true
print(listType([1,2,"someString"])) //true
print(listType<int>([1,2,"someString"])) //false

如果您想检查特定类型的列表,如int列表或字符串列表。

你可以这样试试:

listType(example) {
switch(example.runtimeType){
case List<int>:
print("int");
break;
case List<String>:
print("String");
break;
case List<double>:
print("double");
break;
}
}

相关内容

最新更新