鸿蒙ArkTS零基础入门:变量、类型与数组(黑马程序员课程总结)
·
大家好,我是鸿蒙学习新手,正在跟着黑马程序员课程学习鸿蒙ArkTS,今天总结【变量和类型、数组】这一节。
在编程的世界里,数据就像我们生活中的各种物品,而变量和类型就是存放和分类这些物品的“盒子”和“标签”。数组则像是一个“多格收纳盒”,可以整齐地存放多个同类物品。掌握它们,是写出任何程序的第一步。
一、学习环境准备
请确保你已安装好 DevEco Studio 并创建了一个 Empty Ability 项目,开发语言选择 ArkTS。我们将在 entry/src/main/ets/entryability/EntryAbility.ts 文件中编写和运行今天的代码。

二、变量与类型:数据的“盒子”与“标签”
想象一下,你要整理房间。变量就是你准备的“空盒子”,用来装东西。而类型就是你贴在盒子上的“标签”,告诉你这个盒子应该装什么(比如“书本盒”、“玩具盒”)。ArkTS 要求我们明确每个盒子的标签,这样程序才更安全、不易出错。
1. 声明变量:let 和 const
创建“盒子”有两种方式:
- let:声明一个普通的“盒子”,里面的东西以后可以换。
- const:声明一个“密封盒”,一旦放进东西,就不能再换了。
// 使用 let 声明变量(可变的盒子)
let myName: string = "小明";
myName = "小红"; // 正确,可以更换内容
// 使用 const 声明常量(不可变的密封盒)
const PI: number = 3.14159;
// PI = 3.14; // 错误!常量一旦赋值就不能修改
2. 基础数据类型
ArkTS 提供了几种基础的“物品分类”:
- number:数字,包括整数和小数。
- string:字符串,表示一段文本。
- boolean:布尔值,只有 true(真)或 false(假)。
// number 类型
let age: number = 18;
let price: number = 9.9;
// string 类型
let greeting: string = "你好,鸿蒙!";
// 使用模板字符串可以方便地拼接变量
let message: string = `我今年 ${age} 岁`;
// boolean 类型
let isLogin: boolean = true;
let hasError: boolean = false;
3. 数组与元组
当我们需要把多个同类物品放在一起时:
- 数组 (Array):就像一个“笔筒”,可以放很多支笔(同类型数据)。
- 元组 (Tuple):像一个“定制药盒”,每个格子放什么药是固定的(固定长度和类型)。
// 数组 - 存放多个同类型数据
let scores: number[] = [90, 85, 88]; // 数字数组
let fruits: string[] = ["苹果", "香蕉"]; // 字符串数组
// 元组 - 固定长度和类型的数组
let person: [string, number] = ["张三", 20]; // 第一个必须是string,第二个必须是number
4. 枚举与联合类型
为了让“标签”更清晰、更灵活:
- 枚举 (Enum):给一组数字起上好记的名字。
- 联合类型 (Union Type):一个“盒子”可以贴多个允许的“标签”。
// 枚举 - 定义一组命名的常量
enum Direction {
Up,
Down,
Left,
Right
}
let move: Direction = Direction.Up;
// 联合类型 - 变量可以是多种类型之一
let id: string | number;
id = "A001"; // 正确
id = 1001; // 正确
// id = true; // 错误,boolean 不在允许的类型中
三、数组基础:操作“多格收纳盒”
数组是我们最常用的“多格收纳盒”,ArkTS 提供了丰富的方法来操作它。
1. 创建数组
// 方式一:类型 + 方括号 (推荐)
let list1: number[] = [1, 2, 3];
// 方式二:Array<类型>
let list2: Array<string> = ["a", "b", "c"];
// 方式三:先声明空数组,再添加
let list3: number[] = [];
list3.push(1);
list3.push(2);
2. 访问与修改元素
let colors: string[] = ["红色", "绿色", "蓝色"];
// 访问:通过索引(从0开始计数)
let firstColor: string = colors[0]; // "红色"
let secondColor: string = colors[1]; // "绿色"
// 修改
colors[1] = "黄色"; // 数组变为 ["红色", "黄色", "蓝色"]
// 获取数组长度
let len: number = colors.length; // 3
3. 数组常用方法
这些方法就像给“收纳盒”增加各种功能:
let arr: number[] = [1, 2, 3];
// 访问数组长度
let len: number = arr.length; // 3
// 修改数组元素
arr[0] = 10; // 数组变为 [10, 2, 3]
// 遍历数组(将在下一小节详细学习)
for (let i = 0; i < arr.length; i++) {
console.log(arr[i]);
}
注意:更多高级数组方法(如 push、pop、concat 等)将在后续课程中学习,这里我们先掌握基础的访问和修改操作。
4. 遍历数组
我们经常需要逐个处理“收纳盒”里的每个物品:
let names: string[] = ["张三", "李四", "王五"];
// 方法1:普通 for 循环
for (let i = 0; i < names.length; i++) {
console.log(`学生${i + 1}: ${names[i]}`);
}
// 方法2:for...of 循环(直接拿到值)
for (let name of names) {
console.log(`姓名: ${name}`);
}
// 方法3:forEach 方法
names.forEach((name, index) => {
console.log(`索引${index}对应: ${name}`);
});
五、常见问题
- Q: let 和 const 怎么选?
A: 如果确定这个值不会改变,就用const(比如圆周率 PI)。如果值可能改变,就用let(比如计数器)。多用const可以让意图更清晰。 - Q: 不写类型可以吗?
A: ArkTS 有类型推断,像let name = "小黑"会自动推断为 string。但建议初学者明确写上类型,这样代码更易懂,也能避免一些错误。 - Q: 数组越界访问会报错吗?
A: 不会报错,但会返回undefined。例如访问arr[10]而数组长度只有3,得到的就是undefined。这是逻辑错误,需要自己注意。
六、总结与下节预告
本节总结
本节我们学习了鸿蒙 ArkTS 中关于数据和集合的基础:
- 变量与类型:掌握了如何使用
let和const声明变量,理解了number、string、boolean、数组、元组、枚举和联合类型这些基础类型。 - 数组操作:学会了创建数组、访问和修改元素,以及三种遍历数组的方式。
下节预告
在下一节,我们将学习 函数与类,这是组织代码、实现复杂功能的关键。你将了解如何定义函数、传递参数、使用箭头函数,以及如何用类来创建对象。掌握了函数和类,你就能写出更模块化、更强大的鸿蒙应用了!
如果你在学习中遇到问题,欢迎在评论区留言讨论。也欢迎关注我,一起跟着黑马程序员课程从零学透鸿蒙 ArkTS!
更多推荐


所有评论(0)