在Dart中把枚举转为字符串 | 在Flutter中把枚举名称打印为字符串的例子

1,877 阅读1分钟

本教程展示了多种获取枚举名称为字符串的方法。

它在Dart和Flutter编程中把枚举常量转换为字符串。

考虑到枚举声明

enum WEEK { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY }


void main() {
  WEEK thursday = WEEK.THURSDAY;

  print(WEEK.MONDAY.toString()); //WEEK.MONDAY
  print(WEEK.MONDAY.index); // zero
  print(WEEK.MONDAY.runtimeType); // WEEK
}


从上面的例子中,打印Enum ,返回值本身的类型是Enum 。例如,WEEK.MONDAY.toString() 返回WEEK.MONDAY 。即周类型

本教程展示了如何将Enum值打印为名称,即MONDAY。

如何在Dart/Flutter中打印Enum常量的名称。

我们有多种方法可以在字符串中获得Enum常量的名称。

  • 使用toString和split方法

例如,WEEK.MONDAY.toString() ,返回WEEK.MONDAY Enum,得到字符串版本的成字符串WEEK.MONDAY值。接下来,这个字符串用. 分隔符分成两个字符串,last 属性返回最后一个元素,即MONDAY

下面是一个在Dart中将Enum转换为String的例子。

enum WEEK { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY }

void main() {
  WEEK thursday = WEEK.THURSDAY;
  String name = thursday.toString().split('.').last;

  print(name); //THURSDAY
  print(name.runtimeType); //String
}

在Dart中,内置的属性名称会返回字符串类型和值。

下面是一个在Dart中将Enum转换为String的例子:

enum WEEK { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY }

void main() {
  WEEK thursday = WEEK.THURSDAY;

  print(thursday.name); // THURSDAY
  print(thursday.name.runtimeType); // String
}

总结

总结一下。

学会了如何通过两种方式将Enum常量转换成字符串名称

  • Enum名称属性
  • toString()和split方法