如何将字符串变量值限制为dart中的一些预定义值

  • 本文关键字:预定义 dart 字符串 变量值 dart
  • 更新时间 :
  • 英文 :


我可以用以下类型的脚本来完成:

let greet: 'Hey' | 'Hi' | 'Hello';
// Now greet will allow only above specified string values
greet = 'Hi'; // no Type Error here
greet = 'Welcome'; // throws a Type Error

如何在Dart中实现等效功能?

您可以使用枚举类型,并在必要时将其转换为String

声明枚举:

enum Greet {
Hey,
Hi,
Hello,
}

提供一种用扩展方法转换为字符串的方法:

extension ParseToString on Greet {
String toShortString() {
return this.toString().split('.').last;
}
}

示例用法:

void main() {
Greet greet = Greet.Hey;
print(greet.toShortString());//Hey
}
enum Greet {
Hey,
Hi,
Hello,
}
extension ParseToString on Greet {
String toShortString() {
return this.toString().split('.').last;
}
}

如果您只需要一个具有几个不同值的类型,则可以忽略String扩展部分。

最新更新