You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中有没有和Swift的try?功能类似的语法?

Dart 目前没有原生提供类似 Swift 中 try? 的内置语法糖,不过你可以通过自定义泛型工具函数实现完全等价的简化效果,同时保留编译器自动类型推断能力,无需提前手动声明变量类型。

同步场景实现

首先定义通用同步错误处理工具函数:

T? trySync<T>(T Function() operation) {
  try {
    return operation();
  } catch (_) {
    return null;
  }
}

使用方式完全匹配你的需求,var 可自动推断返回类型:

var result = trySync(() => json.decode(response.body));
// 自动推断类型为 dynamic?,操作失败时result为null

异步场景实现

如果需要处理异步Future操作,可定义对应异步版本:

Future<T?> tryAsync<T>(Future<T> Function() operation) async {
  try {
    return await operation();
  } catch (_) {
    return null;
  }
}

使用示例:

var response = tryAsync(() => http.get(Uri.parse('https://example.com')));
// 自动推断类型为 Future<Response?>

以上实现的额外运行时开销可以忽略不计,是目前Dart生态中最接近Swift try? 效果的方案。


内容的提问来源于stack exchange,提问作者Chen Li Yong

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 18:06:00