这章的主题是关于变量的使用,包括变量的声明、初始化、作用域、持续性、绑定时间以及命名规则等。以下是知识清单和相应知识的简单解释
1. 变量声明
- 显式声明与隐式声明:明确地在代码中声明变量,而不是依赖于编译器的自动声明。
- 命名规则:变量名应完整准确,易于搜索,问题导向,长度适宜(8-20个字符)。
2. 变量初始化
- 不恰当的初始化:是许多bug的源头,包括忘记赋值、赋值过期等。
- 建议:变量声明时立即初始化,使用
final(java)
或const(c++)
防止变量值改变。
3. 变量作用域
- 不同语言的处理方式:变量作用域的处理方式不同,应使变量使用集中化,即跨度尽可能小。
- 存活时间:变量的存活时间越短越好,提升可读性。
4. 变量持续性
- 生命周期:变量的生命周期可能比开发者认为的要短,由此引发问题。
- 防御性编程技术:使用断言、错误处理等技术,养成检查变量持续性的习惯。
5. 变量绑定时间
- 绑定:变量和值的绑定,即赋值。
- 绑定时间:越晚的绑定时间对程序的灵活性越有利,可以在编码时、编译时、加载时、实例化时或即时绑定。 绑定时间越晚,变量属性确定的时间越接近程序的实际运行时,因此程序可以更灵活地适应不同的运行场景和需求变化。
6. 数据类型与控制结构
- 单一用途变量:避免将一个变量用于多种用途,以减少错误。(术业有专攻)
7. 变量名命名的基本原则