У меня есть dynamic x
, и я хотел бы назначить x
на T s
, если 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);
Есть ли синтаксически более хороший способ сделать это?