在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