Dart explicit operators like C#?



在c#中,你可以将显式操作符作为类中的静态函数,这样如果你知道如何从一种类型转换为另一种类型,通常不会工作,你可以让你的类这样做,它只是工作在任何地方,它需要另一种类型,你可以把第一个类型。

Dart有这个吗?

这是不一样的,但你可以实现它,如果你需要它。
错误只能在运行时检测。

void main() {
  final str1 = '123';
  final int i = str1.castTo();
  print(i);
  final str2 = 'true';
  final bool b = str2.castTo();
  print(b);
}
extension Cast on String {
  T castTo<T>() {
    switch (T) {
      case int:
        return int.parse(this) as T;
      case bool:
        switch (this) {
          case 'false':
            return false as T;
          case 'true':
            return true as T;
        }
    }
    throw StateError('Unable to convert to type: $T');
  }
}

输出:

123
true

最新更新