Dart
Dart 是由 Google 开发的编程语言,支持静态类型检查,常与 Flutter 搭配开发应用。它让你用明确的数据类型和异步逻辑组织功能,再通过编译运行在不同平台上,例如编写记账 App 的账单计算和接口请求。
你可能会说:「我想做一个安卓和苹果手机都能用的记账应用,尽量共用代码,该用什么语言?」
读之前建议先了解
要点用 Dart 写应用时,你需要理解什么?
- 1
类型明确但能自动推断
Dart 会检查数据类型,也能根据初始值推断类型,所以你不必处处手写类型声明。比如账单金额是数字,误把文本拿来参与计算,通常能在运行前发现问题。
- 2
空值需要在类型中说明
用户昵称可能还没填写,你可以把它声明为允许空值的类型。因为 Dart 区分可空和不可空类型,所以读取昵称前,需要处理缺失情况,例如显示默认名称。
- 3
异步等待不等于并行
请求账单接口时,你可以用 Future 表示稍后得到的结果,再用 async 和 await 等待。这样能组织异步流程,但不会自动把耗时计算移到另一条线程。
- 4
运行目标决定编译方式
Dart 能面向原生平台编译,也能编译为供浏览器运行的代码。开发 Flutter 应用时,工具支持热重载;发布时则生成对应平台的产物,而不是把源码直接交给用户运行。
容易混淆的地方
Dart 是语言,Flutter 是使用 Dart 的界面框架:前者表达数据和逻辑,后者提供组件、布局与绘制能力。它也不是 TypeScript 的另一种写法;两者都有类型检查,但 Dart 有自己的工具链,不能直接替换现有网页项目里的 TypeScript。
什么时候用
适合用
- 你决定用 Flutter 做手机应用,需要编写页面逻辑、数据模型和接口调用。
- 团队已有 Flutter 产品,你想把订单计算等业务逻辑抽出来,用 Dart 单独测试。
- 你熟悉 Dart,想写配套的命令行工具,例如检查应用翻译文件是否缺项。
不适合用
- 只给现有 React 网站增加筛选功能,用项目里的 JavaScript 或 TypeScript 更直接。
- 要训练机器学习模型并使用主流训练库,通常选 Python,而不是 Dart。
- 只做文字内容为主、需要搜索引擎收录的官网,优先考虑 HTML 或支持静态生成的网页框架。
练一练选一个答案,看看解释
你让 AI 用 Dart 做一个手机记账应用,它交付了账单类、金额计算函数和接口请求代码,却没有页面。你该怎样理解并补充需求?
让 AI 帮你做复制给 AI Agent 直接用
请用 Dart 和 Flutter 实现记账应用的账单列表与新增页面。把金额计算、数据模型和界面分开,明确哪些字段允许为空,用异步方式请求接口,并处理加载、失败和空列表状态。为金额计算补充单元测试,说明如何运行和验证。