鸿蒙跨端框架Flutter学习day 1、变量与基本类型-简易计算器逻辑
本文系统介绍了Dart语言中的变量声明方式及其应用场景。主要内容包括:变量作为程序最小记忆单元的基础概念;var、final和const三种声明方式的区别与适用条件;强类型定义的价值体现;late关键字在延迟初始化中的应用;以及通过计算器案例展示变量在状态驱动UI中的核心作用。文章强调,合理选择变量声明方式不仅满足语法需求,更能清晰表达代码意图,是Flutter开发的重要基础。
目录
- 一、 引言:变量——程序的最小记忆单元
- 二、 声明的多样性:var, final 与 const
- 三、 强类型的力量:明确定义的价值
- 四、 延迟赋值:late 关键字的优雅
- 五、 实战演练:计算器逻辑在 UI 中的体现
- 六、 结语
一、 引言:变量——程序的最小记忆单元
在计算机的世界里,任何复杂的逻辑最终都归结为对数据的处理。而变量(Variable),正是程序在运行时用来“记忆”这些数据的最小单元。在 Dart 语言中,变量的声明不仅仅是开辟一段内存空间,更是一种契约的建立。
二、 声明的多样性:var, final 与 const
Dart 提供了多种声明变量的方式,理解它们的区别是编写稳健代码的第一步。
2.1 类型推断 (var)
使用 var 声明变量时,Dart 会根据初始值自动推断其类型。一旦推断完成,该变量的类型便固定下来。
var price = 99.9; // 推断为 double
// price = "free"; // 错误:不能将 String 赋值给 double
2.2 不可变变量 (final)
final 声明的变量只能被赋值一次。它在程序运行时(Runtime)确定其值。在我们的示例代码中,许多 UI 相关的配置(如 final List<Widget> _pages)都使用了 final。
2.3 编译时常量 (const)
const 是比 final 更严格的约束。它声明的是编译时常量。使用 const 可以帮助编译器优化内存,尤其是在 Flutter 的 UI 构建中。
// 示例代码中的应用
const String appLabel = "HarmonyOS Flutter Resume";
三、 强类型的力量:明确定义的价值
虽然 Dart 具备强大的类型推断能力,但在编写复杂的业务逻辑(如计算器)时,显式地声明类型往往能提供更好的代码可读性。
- int:用于计数、索引、年龄等。
- double:用于金额、坐标、百分比。
- String:文本信息的载体。
- bool:逻辑判断的开关。
四、 延迟赋值:late 关键字的优雅
在 Flutter 开发中,经常会遇到某些变量无法在声明时立即初始化,但又能保证在使用前完成赋值的情况。
// 示例代码中的 CalculatorDemo
late double result; // 延迟初始化:告诉编译器,我保证在 build 之前会计算出结果
五、 实战演练:计算器逻辑在 UI 中的体现
在 lib/main.dart 的 CalculatorDemo 中,我们通过变量建模实现了简单的加减运算:
class _CalculatorDemoState extends State<CalculatorDemo> {
// 1. 变量声明
double numberA = 10.5;
double numberB = 5.0;
String operator = "+";
late double result;
void initState() {
super.initState();
_calculate(); // 2. 初始化逻辑
}
void _calculate() {
setState(() {
// 3. 逻辑运算
if (operator == "+") {
result = numberA + numberB;
} else if (operator == "-") {
result = numberA - numberB;
}
});
}
}

通过点击 UI 上的按钮修改 operator 变量,并调用 setState 触发界面重绘,这就是 Flutter 最基础的“状态驱动 UI”思想,而状态的本质就是这些变量。
六、 结语
变量是代码的基石。在 Dart 中,选择正确的声明方式不仅是为了满足语法要求,更是为了向他人传达代码的真实意图。从 Day 1 开始,建立严谨的声明习惯,将为您后续的 Flutter 之旅打下坚实的基础。
欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net
更多推荐




所有评论(0)