gpt4 book ai didi

dart - 在 Dart 中,将动态转换为给定类型或返回 null 的语法很好吗?

转载 作者:行者123 更新时间:2023-12-03 02:38:44 25 4
gpt4 key购买 nike

我有一个 dynamic x我想分配 xT s如果 x is T ,否则分配 nulls .具体来说,我想避免输入 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);

有没有语法上更好的方法来做到这一点?

最佳答案

Dart 2 具有通用功能,允许

T cast<T>(x) => x is T ? x : null;
dynamic x = something();
String s = cast<String>(x);

你也可以使用
var /* or final */ s = cast<String>(x);

并获得 String推断为 s

关于dart - 在 Dart 中,将动态转换为给定类型或返回 null 的语法很好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52632119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com