dart - 对 dart 中的多个枚举应用相同的扩展
问题描述
是否有可能将相同的飞镖扩展应用于多个枚举?这是我的枚举和扩展。
enum Currency {
EUR, INR, USD, CNY, JPY, GBP
}
extension ParseToString on Currency {
String toShortString() {
return this.toString().split('.').last;
}
}
有没有可能让它像
enum InvoiceStatus {
DRAFT, SENT, PAID, PARTIALLY_PAID
}
extension ParseToString on Currency, InvoiceStatus {
String toShortString() {
return this.toString().split('.').last;
}
}
解决方案
虽然没有办法为多个枚举添加扩展,但由于 dart2.14
所有枚举都扩展了一个公共接口:Enum。这允许您向所有枚举添加扩展:
extension on Enum {
String toShortString() {
return this.toString().split('.').last;
}
}
之后,您可以使用.toShortString()
任何枚举对象。
推荐阅读
- javascript - React Native 提取缓存不起作用(无法启用缓存)
- jenkins - Jenkins Junit Reporter 无法找到 xml 文件?
- ionic3 - 如何在 ionic 3 中实现 pushwoosh
- angular - 访问深度嵌套子组件中的数组
- sql - 如何减少oracle查询响应时间
- android - 布局不向上滚动?
- bit-manipulation - 一系列随机数的按位与(效率)
- python - 从一个子模块导入另一个子模块
- haskell - 在 ADT 上解决 readEither
- android - Google Pay(Tez) 集成到我的支付网关?(安卓)