书香 发表于 2023-5-17 23:49

【变量的权限类型】

本帖最后由 书香 于 2024-2-10 03:40 编辑

易语言变量有3种,全局变量,程序集变量,局部变量

局部变量就是只在子程序内部有效
程序集就是只在当前程序集有效(同一个窗口或程序集下的子程序可以共同调用)
全局变量就是在全局有效(多个窗口或程序集之间的任意子程序可以共同调用)
程序集变量和全局变量在使用上差别不大,重点就是局部变量



局部变量最大的特点:
子程序被调用时当场创建,当场释放

比如我们写一个软件,统计按钮被单击的次数
错误写法:

.版本 2

.程序集 窗口程序集_启动窗口

.子程序 _按钮1_被单击
.局部变量 单击次数, 整数型

单击次数 = 单击次数 + 1
调试输出 (单击次数)


这种写法,调试输出的值始终为1,根据前面课程的讲解,变量在“=”右边表示读取,所以单击次数+1=0+1(单击次数是整数型的变量,初始值为0),
子程序内部的变量是相互独立的,也就是说就算该子程序被同时调用多次,彼此之间也是不会影响的,理解这句话很重要


正确写法:
.版本 2

.程序集 窗口程序集_启动窗口
.程序集变量 单击次数, 整数型

.子程序 _按钮1_被单击

单击次数 = 单击次数 + 1
调试输出 (单击次数)


所以这种写法需要使用程序集变量或全局变量
总结:
当多个子程序需要共同对某个变量进行操作时,就需要使用程序集变量或全局变量
难点:

全局变量就是需要多个窗口调用同一变量时需要使用到,这种情况大家可能想不出来,那我们举个例子:
比如我们使用某个软件时,在大窗口点击删除卡密“aaa”,结果弹出一个小窗口,提示是否确定删除用户“aaa”,小窗口怎么知道我们要删除的用户是“aaa”,我们是在大窗口操作的呀,这说明他们使用了全局变量,我们选择的用户信息存储到一个全局变量中,所以我们在大窗口点击时,全局变量存储了这个用户信息,在小窗口中可以读取,出来这下理解了吗?
(点击返回课程目录:https://www.52hb.com/thread-58658-1-1.html)


sjtkxy 发表于 2023-6-15 04:49

2819485765 发表于 2023-8-8 09:21

感谢分享

longge188 发表于 2023-8-23 11:59

谢谢分享

ljscs 发表于 2023-11-18 15:57

交作业,把计算机的编辑框内容加了进去,巩固一下上一节课的内容
页: [1]
查看完整版本: 【变量的权限类型】