[学习笔记]易语言软件开发工程师第一阶段基础知识

    选择打赏方式

前几天,脑抽花钱报了个培训班。

想着花钱学习技术,这样应该能坚持下来的吧?

早在本人高二的时候就已经玩过了易语言,这次又回来好好的学习一遍。

笔记主要还是给自己看的,也给同样在培训班的朋友看看,共同学习进步。

说句题外话,精易论坛的老师真的都很好,骚猫和落雪,都是技术大牛,而且都很好说话,尤其是骚猫,开场的骚猫唱,直入灵魂。。。


一、基础知识部分

易语言的基础知识没什么学的,下面这张图看看,看不懂就写出来试试看。

TIM截图20190519122742.png

其实,也可以学习一下C语言,翻回来看这些就会觉得,易语言真的很简单。


接下来是基本数据类型,我之前的C语言笔记也有相关记录,感兴趣的可以翻翻看。

参考资料:http://www.8964cn.net/?post=46

易语言的基本数据类型:

1.字节型。容纳0到255之间的数值。
2.短整数型。可容纳-32,768到32,767之间的教值,尺寸为2个字节。
3.整数型。可容纳-2,147,483,648到2,147,483,647之间的数值,尺寸为4个字节。
4.长整数型。可容纳-9,223,372,036,854,775,808到9,223,,372,036,854,775,807之间的数值,尺寸为8个字节。
5.小数型。可容纳3.4E+/-38(7位小数)之间的数值,尺寸为4个字节。
6.双精度小数型。可容纳 1.7E+/-308(15位小数)之间的数值,尺寸为8个字节。
7.逻辑型。值只可能为“真”或“假”,尺寸为4个字节。“真”和“假”为系统预定义常量,其对应的英文常量名称为“true”和“false”。
8.日期时间型。用作记录日期及时间,尺寸为8个字节。
9.文本型。用作记录一段文本,文本由以字节0结束的一系列字符组成。
10.字节集。用作记录一段字节型数据。字节集与字节数组之间可以互相转换,在程序中允许使用字节数组的地方也可以使用字节集,或者相反。字节数组的使用方法,譬如用中括号对(“[]”)加索引数值引用字节成员,使用数组型数值数据进行赋值等等,都可以被字节集所使用。两者之间唯一的不同是字节集可以变长,因此可把字节集看作可变长的字节数组。
11.子程序指针。用作指向一个子程序,尺寸为4个字节。


前6个都是C里面的基本数据类型。

第7个逻辑型应该是微软定义的那个,实际上是个int类型,占用4个字节,区别于C99标准的bool(小写,占用一个字节)

TIM截图20190519124831.png

第8个日期时间是不算是基本数据类型。

第9个文本型,咨询了落雪老师,get到这个类型的真面目,就是一个char*,指向char数组的首地址。

TIM截图20190519132909.png

char只能存一个字符,一个unicode占用2个字节,所以一个中文要占数组中的2个成员位置,同时一个字符串结束有一个\0作为字符串的结束符。

第10个字节集,讲道理,我现在还是很懵逼,我对于字节集的理解就是一个字节数组,0-255的取值范围,我推测就是一个byte,或者说是C语言的unsigned char。

总之,万物皆可整数(int),万物皆可字节集(bin).


变量作用域

全局变量:程序执行期间内有效,exe不被结束,就一直在,在整个程序内都可以访问,修改。

程序集变量:在对本程序集内执行的代码有效,只能被当前程序集内的子程序访问,修改,易语言的类也是如此,本类内有效,没创建,或者销毁类后内存会被系统释放。

局部变量:仅在当前子程序内有效,子程序退出后会被释放,无法被外部访问,修改。

静态局部变量:在子程序第一次被执行时创建出来,但是子程序退出该变量不会被自动释放。

例外:

采用指针、内存等手段,可以突破某些限制,包括但不限于跨子程序,程序集赋值,甚至改动常量。


关于内存和指针:

易语言在设计的时候就有意避开指针,所以没有封装指针类型,只留下了核心库的2个命令

申请内存和释放内存,以及指针到整数、指针到字节集、指针到文本。

但是实现一些高级操作的时候又少不了指针。。。

其实,指针不过是指向一个内存单元的地址,通过这个地址可以访问到这个内存单元。

本例子调用的api就是支持库的原型函数

这种尽量英文编程吧,不喜欢汉化的api。

TIM截图20190519151638.png

TIM截图20190519150610.png

输出结果:

* 6010688
* 123

最后,申请了一定要释放,否则会泄漏!!!


二、多线程

这个东西用的很广,尤其是winhttp方面,合理运用可以让速度提升几十倍。


编写多线程程序,最重要的几点:

1.不要多线程同时操作一个组件

2.多线程不要同时操作公用的程序集变量和全局变量

3.不要用TerminateThread,这个函数就连微软都觉得很危险。

4.临界或者说许可区,一定要有进有出,只进不出会卡死后面其他线程

5.句柄用完要关闭掉,否则会发生句柄泄漏。


新手只要牢记这几点,基本上问题不大,易语言多线程崩溃率高不是易语言本身的问题,是易语言程序员普遍水平较低导致的。。。


多线程参考资料:http://www.8964cn.net/?post=55


三、正则表达式

正则表达式,本质上是一个文本处理引擎,我们不必关注其内部实现就可以直接拿来主义了。

精易模块也提供了一个正则表达式类,不过其本质上是VBScript.RegExp对象的封装。

新手使用正则表达式只需要记住,把整行中需要提取的字符串用(.*?)替换,需要跳过的部分和需要提取的部分用[\s\S]连接即可。

版权声明:若无特殊注明,本文皆为《 8964CN 》原创,转载请保留文章出处。
本文链接:[学习笔记]易语言软件开发工程师第一阶段基础知识 http://www.8964cn.net/?post=54
正文到此结束

热门推荐

发表吐槽

你肿么看?

你还可以输入 250 / 250 个字

嘻嘻 大笑 可怜 吃惊 害羞 调皮 鄙视 示爱 大哭 开心 偷笑 嘘 奸笑 委屈 抱抱 愤怒 思考 日了狗 胜利 不高兴 阴险 乖 酷 滑稽

评论信息框

吃奶的力气提交吐槽中...


既然没有吐槽,那就赶紧抢沙发吧!