flutter评估var是整数还是字符串

时间:2018-07-11 11:39:01

标签: flutter

我需要评估变量的类型以进行某些切换,有任何方法可以评估变量以获取其类型,例如val()或类似的东西。我需要对整数做一些事情,对字符串做其他事情。

我真想尝试使用这样的开关

 switch (selector) {
case  int :
  print('value is a integer');
    break;
case  String:
    print('value is a String');
   break;

}

但是我该怎么做,如果开关可以允许比较混合类型的vars?

谢谢

4 个答案:

答案 0 :(得分:5)

您可以使用关键字is或切换runtimeType

dynamic foo = 42;
if (foo is int) {
  print("Hello");
}
switch (foo.runtimeType) {
  case int: {
    print("World");
  }
}

请考虑使用is而不是直接使用runtimeTypeis与子类一起使用。使用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);
  }
相关问题