易语言第二课 - 变量+常量
变量和常量是什么,变量的组成,作用域,静态变量,数组,命名规范
变量
变量是什么?为什么需要变量?
什么是变量
- 变量让你能够把程序中准备使用的每一段数据都赋给一个简短、易于记忆的名字。可以通过这个名字来读取写入数据
打个比喻来解释
- 拆开《变量》这个词。
- 变 = 可变 量 = 数据 所以变量 = 可变的数据
- 比如数学中的π,π对应的值是什么?为什么要叫做π呢?π也就是变量,3.1415926也就是对应的值。
为什么需要变量?
- 变量其实就是助记符代记词,可以用很短的一个词来代替很长的数据
变量的组成,作用域
变量的组成
- 变量是由:
变量名
+类型
+作用域
组成
- 变量是由:
作用域
- 由小变大:
局部变量
<程序集变量
<全局变量
- 局部变量:作用域在于子程序内部,生存周期也是子程序的开始和子程序的结束
- 程序集变量:作用域在整个程序集中全部子程序,生存周期是程序集开始(普通程序集没有销毁,程序的结束变量也会消失,但是易语言中的类是可以销毁的)
- 全局变量:作用域在于整个程序中所有程序集内的全部子程序,生存周期是程序的开始到程序的结束
- 由小变大:
静态局部变量
- 程序的局部变量可以设置为“
静态
”类型。所谓“静态
”,就是指该变量具有“记忆
”功能,对该子程序调用后,该局部变量的值不会被销毁,到下次进入该子程序,它仍然保留上次调用该子程序后的值。普通的子程序变量在每次进入子程序内后都要重新分配内存空间,在退出子程序时自动释放所占用的空间;而“静态”类型的子程序变量跟全局变量和程序集变量一样,在程序启动时就分配了内存空间并初始化(只初始化一次,而不是每次进入子程序都初始化),并且在整个程序运行期间都不释放,所以该类型的变量有“记忆
”效应。
就如同上面运行的程序一样,调用静态变量这个子程序三次,调试输出(局_变量1)得到
开始运行被调试程序
* 1
* 2
* 3
被调试易程序运行完毕
数组
- 计算机处理的数据量往往是很大的,而且通常是同一种数据类型。比如:一堆账号,一堆姓名
- 易语言中提供的“
数组
”数据结构允许我们方便地处理这样的数据 - 定义数组后,可以通过方括号+索引访问对应索引的值
代码
.版本 2
.支持库 spec
.程序集 窗口程序集_启动窗口
.子程序 __启动窗口_创建完毕
数组 ()
.子程序 数组
.局部变量 局_变量1, 整数型, , "0"
局_变量1 = { 1, 2, 3, 4, 5 }
调试输出 (局_变量1 [1])
输出
开始运行被调试程序
* 1
被调试易程序运行完毕
常量
常量是什么?为什么需要常
- 常量是在程序
编写时
定义好的。 - 常量是
不变的变量
常量也被称为
字面常量
或直接常量
- 常量的值是可以直接看到的,因为是在程序编写时
直接定义
。 - 譬如:666,0,-666 为整数 “我爱你”,“我恨你” 为文本
- 常量的值是可以直接看到的,因为是在程序编写时
为什么需要常量
- 如果有一个值需要在程序中是固定并且不被修改的话需要用常量,再或者,变量无法直接表达的情况下(
有引号的情况下
)
- 如果有一个值需要在程序中是固定并且不被修改的话需要用常量,再或者,变量无法直接表达的情况下(
命名规范
命名规范
- 这个命名规范不止限于变量和常量,还包括子程序,参数,类,等等等
首先先看限制方面:名称的首字母必须为全半角字母或汉字或下划线 - 无长度限制(尽量短而精简并且明确表达变量的用途)
可以和其他作用域下的变量重复(重复就会出现变量冲突,尽量保持唯一性) 命名规范:尽量能直接表达出所在域-所属用途-他的类型
比如:子程序_检查更新 是子程序,并且功能是检查更新- 局_姓名 是局部变量,存储的数据是姓名
- 参_姓名 是参数,传递的参数数据是姓名
如果多个地方需要用到这个东西,可以采用统称法,比如
- 局_文本
- 局_数据
命名方式
- 匈牙利命名:
开头字母用变量类型的缩写,其余部分用变量的英文或英文的缩写,要求单词第一个字母大写。
如m_lpszStr
表示指向一个以0字符结尾的字符串的长指针成员变量。
- 驼峰式命名法(小驼峰式命名法):
第一个单词首字母小写,后面其他单词首字母大写。
如 amdYes
= 0
- 帕斯卡命名法(大驼峰式命名法):
每个单词的第一个字母都大写。
如 AmdYes
= 0
- 下划线命名法:
每个词语间以下划线作为分割。
如 amd_yes
= 0