鸿蒙跨端框架Flutter学习day 1、变量与基本类型-数字资产交易逻辑
本文介绍了在数字资产交易所开发中Dart变量的核心应用。通过数据建模表格展示资产属性的变量选择,分析var、final、const三种修饰符的适用场景:var用于行情波动数据,final锁定交易流水号,const定义系统固定费率。重点讲解late关键字实现延迟初始化,以及通过setState驱动UI更新的实现逻辑。最后总结变量声明、基础类型和状态管理等核心知识点,为数字金融应用开发奠定基础。
·
目录
一、 数据建模:资产的数字化表达
在赛博朋克风格的数字资产交易所中,每一笔资产都需要精准的变量建模。为了清晰展示不同资产属性在代码中的体现,我们可以参考下表:
| 属性名称 | 业务含义 | 推荐数据类型 | 理由 |
|---|---|---|---|
| Coin Symbol | 代币符号 (如 BTC) | String |
纯文本标识 |
| Current Price | 当前市场价格 | double |
包含高精度小数 |
| Holdings | 持有数量 | double |
可能存在 0.1 等非整数 |
| Hot Wallet | 钱包安全状态 | bool |
仅有 开/关 两种逻辑状态 |
| Total Value | 总估值 | double |
动态计算出的精确数值 |
二、 核心概念:var, final 与 const 的博弈
Dart 提供了三种不同的变量修饰符,它们在交易系统中的应用场景截然不同:
| 修饰符 | 特性说明 | 初始化时机 | 交易系统应用示例 |
|---|---|---|---|
| var | 类型推断,内容可修改 | 运行时 (Runtime) | var currentPrice = 42500.0; (行情波动) |
| final | 内容不可修改 (运行时常量) | 运行时 (Runtime) | final orderID = "TXN-998"; (成交后锁定) |
| const | 编译时常量,性能最优 | 编译时 (Compile-time) | const serviceFee = 0.001; (系统固定费率) |
2.1 动态推断 (var)
在交易逻辑中,当我们从 API 获取不确定的价格数据时,var 提供了灵活性。
var currentPrice = 42500.0; // 自动推断为 double,后续可根据行情修改
2.2 运行时锁定 (final)
每一笔成交的流水号(Order ID)或时间戳,在生成后是不允许更改的。
2.3 极致常量 (const)
代币的最小精度或系统的服务费率,如果是全系统统一且编译时确定的,首选 const。
三、 进阶技巧:late 关键字与动态估值
在我们的 CryptoExchangeDemo 示例中,总估值 totalValue 是一个依赖项。它依赖于 currentPrice * amount。
late double totalValue; // 声明:我现在没有值,但在使用前我会通过逻辑算出
| 关键字 | 使用目的 | 安全提示 |
|---|---|---|
| late | 允许延迟初始化非空变量 | 必须保证在使用前完成赋值,否则抛出运行时异常 |
四、 代码实现:交易所逻辑的变量驱动
在 lib/main.dart 中,我们通过以下核心逻辑实现了资产的动态更新:
void _refreshValue() {
setState(() {
// 估值逻辑:价格 * 数量
totalValue = currentPrice * amount;
});
}
- 状态驱动:点击“BUY”按钮修改
amount变量,并调用setState。 - 类型感知:UI 层使用
totalValue.toStringAsFixed(2)将浮点数格式化为可读的金额字符串。

五、 结语
在数字金融的世界里,变量就是金钱。通过下表的归纳,希望能帮你快速记忆 Day 1 的核心内容:
| 学习要点 | 核心目标 | 关键语法 |
|---|---|---|
| 变量声明 | 掌握存储数据的三种方式 | var, final, const |
| 基础类型 | 掌握常用数据容器 | String, int, double, bool |
| 逻辑触发 | 理解数据如何驱动 UI | setState(() { ... }) |
欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net
更多推荐



所有评论(0)