易语言.飞扬特性展示2

发布于:2025-02-13 ⋅ 阅读:(15) ⋅ 点赞:(0)
类型反射:
    编译后的类型具有“自省”性。
    可以在运行时获取类型(或类库)的定义信息。
    可以根据类名称动态创建类对象,并调用对象指定方法。
    提供“反射”类库供程序员使用。

在这里插入图片描述
静态编译:
源代码将被直接编译为可执行代码。
没有中间字节码,没有解释执行环节。
编译时执行严格的语法和数据类型检查。
绝大多数非逻辑性错误都能在编译时发现。
在这里插入图片描述
动态类型装载:
类型总是以类库的形式存在。
类库总是在第一次用到时被加载。
类型总是在第一次用到时被装载。
类型可以随时被卸载。
动态类型装载有助于提升程序的模块化、灵活性和可扩展性。在这里插入图片描述
属性表:
属性表采用易读易写的类XML格式,用于辅助定义“类库、类、接口、枚举、常量、变量、参数、友好名称……”等几乎所有程序实体。
属性表的位置通常紧跟在实体名称的后面,且用户可以根据情况灵活设置扩展属性,并可通过反射机制读取。在这里插入图片描述
类自然语言编程:
属性表采用易读易写的类XML格式,通过引入“友好名称”,易语言实现了“类自然语言编程”。
友好名称也有“参数”的概念,但它的参数可以出现在友好名称中间的任意位置,参数的顺序也不重要——而不象类方法那样:参数只能顺次放在方法名称的后面(还要用小括号括起来)。
在这里插入图片描述
多层嵌套注释:
“/”表示多行注释的开始,“/”表示多行注释的结束。
和其它语言不同的是,“易语言.飞扬”多行注释内部允许嵌套使用单行注释和多行注释。在这里插入图片描述
多返回值:
方法可以有多个返回值。
多个返回值可以有不同的数据类型。
多返回值给编写程序提供了更大的灵活性。在这里插入图片描述
嵌入类型和匿名类:
允许在类型内部嵌套定义其它类型。
嵌入类可以被允许访问其外层类的所有成员。
可以创建匿名类对象。在这里插入图片描述
嵌入方法:
允许在方法内部嵌套定义其它方法。
嵌入方法可以使用其外层方法中的参数和局部变量。
通过嵌入方法可以实现更小范围内的代码重用。在这里插入图片描述
属性:
支持“对象.属性”语法,如“按钮1.标题”。
当属性被读取或赋值时,对象将会得到通知。
本特性用作更好地支持快速应用程序开发。

事件:
当对象收到某个事件时,其对应的事件处理方法将被调用。 本特性用作更好地支持快速应用程序开发。在这里插入图片描述
在这里插入图片描述
中英文双语关键字:
为了兼顾已有程序员的思维习惯,“易语言.飞扬”中所有关键字和系统属性,都同时具有中英文两种名称,可以同时混用。
在语法格式和关键字方面,尽量与现有类似编程语言相同,减少了学习量 。在这里插入图片描述
参数默认值:
方法的参数可以有默认值。
与其它语言不同的是,“易语言.飞扬”任何一个参数都可以有默认值,不限于最后面的参数 。在这里插入图片描述
参数扩展:
方法的参数可以被扩展。
不仅允许扩展最后一个参数,还允许以“组”为单位扩展最后N个参数。在这里插入图片描述
数据类型自动转换:
可实现基本数据类型数据和对象之间的自动相互转换。在这里插入图片描述
“动态类型”和“弱类型”:
通过在系统库中引入“通用型”、“数值型”、“数组型”等类,“易语言.飞扬”在一定程度上做到了“动态类型”和“弱类型”。
以通用型为例,可以将其它类型数据赋值给通用型变量,也可以将通用型变量赋值给其它数据类型变量。
如果某方法的参数为“通用型”,则该参数可以接收各种类型的参数值。
在这里插入图片描述

在这里插入图片描述
三联判断表达式:
“0 < x < 10”等效于“x > 0 && x < 10”。
前者更符合人的思维习惯,代码可读性好。
与数学表达式相一致,便于初学者理解。在这里插入图片描述
交换操作符:
交换操作符用于交换两个变量的值。
“a <=> b;”等效于“int c = a; a = b; b = c;”。
前者更直观,更简捷,代码可读性好。
在这里插入图片描述
“易语言.飞扬”与 JAVA、C#、C++ 的异同:
易语言.飞扬 JAVA C# C++
编译 编译为机器码 编译为字节码 编译为字节码 编译为机器码
执行 由CPU直接执行 在虚拟机中执行 在虚拟机中执行 由CPU直接执行
面向对象 完全面向对象 完全面向对象 完全面向对象 支持面向对象
垃圾回收 支持 支持 支持 (目前)不支持
标准类库 有,有待丰富 非常丰富 非常丰富 标准类库较小,但第三方类库非常丰富
单根继承 是 所有类都是“系统.对象”的子类 是 所有类都是“java.lang.Object”的子类 是 所有类都是“System.Object”的子类 否 任何类都可以有多个基类,没有固定基类
跨平台 支持 同一个源代码未经修改或经少量修改可在其它平台下编译运行 支持 同一个程序或类库未经修改或经少量修改可在其它平台下运行 不支持 仅限于Windows平台 支持(但在多线程、网络、文本编码转换等领域需第三方类库支持)
多线程 支持 支持 支持 第三方类库支持
Unicode 支持 支持 支持 部分支持
网络 支持 支持 支持 第三方类库支持
语言复杂度 简单 较简单 较简单 较复杂
学习难度 容易 较容易 较容易 较难
IDE支持 自行开发,会支持很好 支持很好 支持很好 支持较好
易语言.飞扬 JAVA C# C++
启动方法 公开 静态 整数 启动(文本[] 参数) public static void main(String[] args) public static void Main(string[] args) int main(int argc, char** argv)
启动类 编译时指定 在 MANIFEST.MF 文件中指定 Main方法所属类 无
基本类型 整数,小数,逻辑,文本,字节集 byte, short, int, float, double, boolean, long ,char char, unsigned char,short, unsigned short, int, unsigned int, long, float, double, bool
定义类时所用关键字 类 或 class class class class
公开/保护/私有 所对应的关键字 公开/扩展/私有 public/protected/private public/protected/private public/protected/private
定义变量 整数 i = 123; 或 int i = 123; int i = 123; int i = 123; int i = 123;
定义数组变量 整数[] a = { 1, 2, 3 }; int[] a = { 1, 2, 3 }; int[] a = { 1, 2, 3 }; int[] a = { 1, 2, 3 };
定义类 公开 类 我的类 <基类型 = XXX> { } public class MyClass extends XXX { } public class MyClass : XXX { }; class MyClass :public XXX { };
易语言.飞扬 JAVA C# C++
定义接口 公开 接口 我的接口 { } public interface MyInterface { } public interface MyInterface { }; 没有明确的接口概念,但可用纯虚类加多重继承达到接口的效果
定义枚举 公开 枚举 我的枚举 { u, v, w } public enum MyEnum { u, v, w } public enum MyEnum { u, v, w }; enum MyEnum { u, v, w };
创建对象 对象 obj = 创建 对象(); Object obj = new Object(); Object obj = new Object(); MyClass obj; 或 MyClass* pObj = new MyClass();
创建数组对象 整数[] a = 创建 整数[x]; int[] a = new int[x]; int[] a = new int[x]; int* a = new int[x];
条件判断(if) 如果( 1 + 1 == 2) { } 否则 { } if( 1 + 1 == 2) { } else { } if( 1 + 1 == 2) { } else { } if( 1 + 1 == 2) { } else { }
多条件判断(switch) 假如(x) { 为 1: 为 2: 为其他: } switch(x) { case 1: break; case 2: break; default: } switch(x) { case 1: break; case 2: break; default: } switch(x) { case 1: break; case 2: break; default: }
循环(while) 循环(x < 0) { x++; } while(x < 0) { x++; } while(x < 0) { x++; } while(x < 0) { x++; }
循环(for) C循环(整数 i = 0; i < 10; i++) { } for(int i = 0; i < 10; i++) { } for(int i = 0; i < 10; i++) { } for(int i = 0; i < 10; i++) { }