我的分数是dynamic x
,我想把x
赋给T s
IF x is T
,否则把null
赋给s
.具体地说,我希望避免两次键入x
,并避免创建临时.(例如,我不想一遍又一遍地写String s = map['key'] is String ? map['key'] : null;
,因为我会有很多这样的表达式.)我不希望出现任何运行时错误的可能性.
以下是工作原理:
class Cast<T> {
T f(x) {
if (x is T) {
return x;
} else {
return null;
}
}
}
// ...
dynamic x = something();
String s = Cast<String>().f(x);
有没有语法上更好的方法?