我需要评估变量的类型以进行某些切换,有任何方法可以评估变量以获取其类型,例如val()或类似的东西。我需要对整数做一些事情,对字符串做其他事情。
我真想尝试使用这样的开关
switch (selector) {
case int :
print('value is a integer');
break;
case String:
print('value is a String');
break;
}
但是我该怎么做,如果开关可以允许比较混合类型的vars?
谢谢
答案 0 :(得分:5)
您可以使用关键字is
或切换runtimeType
:
dynamic foo = 42;
if (foo is int) {
print("Hello");
}
switch (foo.runtimeType) {
case int: {
print("World");
}
}
请考虑使用is
而不是直接使用runtimeType
。 is
与子类一起使用。使用runtimeType
是严格的比较。
答案 1 :(得分:1)
您可以使用类似:
if(selector.runtimeType == int) print("Hello")
答案 2 :(得分:0)
很简单:
dynamic a = "hello";
if (a.runtimeType == int)
print("a is int");
else if (a.runtimeType == String)
print("a is String");
答案 3 :(得分:-1)
例如,以TextField的文本为例。
var x = int.parse(_textEditControler.text); // take the text
if (x is int){
print("x is an integer);
}