易语言.飞扬特性展示2
类型反射:编译后的类型具有“自省”性。可以在运行时获取类型(或类库)的定义信息。可以根据类名称动态创建类对象,并调用对象指定方法。提供“反射”类库供程序员使用。
静态编译:
源代码将被直接编译为可执行代码。
没有中间字节码,没有解释执行环节。
编译时执行严格的语法和数据类型检查。
绝大多数非逻辑性错误都能在编译时发现。
动态类型装载:
类型总是以类库的形式存在。
类库总是在第一次用到时被加载。
类型总是在第一次用到时被装载。
类型可以随时被卸载。
动态类型装载有助于提升程序的模块化、灵活性和可扩展性。
属性表:
属性表采用易读易写的类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++) { }
相关文章:

易语言.飞扬特性展示2
类型反射:编译后的类型具有“自省”性。可以在运行时获取类型(或类库)的定义信息。可以根据类名称动态创建类对象,并调用对象指定方法。提供“反射”类库供程序员使用。静态编译: 源代码将被直接编译为可执行代码。 没…...

FlashDecoding
Flash Attention是将Q划分到所有SM block上。每个SM block上的Q,负责和所有K和所有V进行计算,得到对应的结果。期间,SM block彼此之间,不需要通信。 在prefill阶段,seqLength*batchSize*Heads足够多,所以每…...
提示词生成新方法,用Make自动化生成
提示词生成新方法!用Make自动化生成! 在当今快速发展的科技时代,人工智能(AI)正在改变我们如何创作内容。然而,待人青睐的诀窍——提示词生成,可能令许多创作者感到迷惘。你是否曾在写作中挣扎…...
每日一题——括号生成
题解 给定 n 对括号,要求编写一个函数生成所有合法的括号组合。合法的括号组合必须满足每一对括号中的左括号必须先于右括号,并且括号数量必须平衡。 题目描述 输入: 一个整数 n,表示括号的对数,满足 0 ≤ n ≤ 1…...

实操部署DeepSeek,添加私有知识库
目录 一、环境介绍 PowerShell版本: wsl版本: 虚拟机版本: 本机IP: 虚拟机IP: 容器宿主机IP(host.docker.internal): Docker版本: Docker Compose版本ÿ…...

宜宾数字经济新标杆:树莓集团赋能区域产业转型升级
树莓集团在宜宾成为数字经济新标杆,有力地赋能区域产业转型升级。在传统产业数字化转型方面,树莓集团针对宜宾的制造业企业,引入工业互联网技术。 通过搭建工业互联网平台,实现企业生产设备的联网和数据采集,帮助企业…...
8.大规模推荐系统的实现
接下来我们将学习大规模推荐系统的实现。在实际应用中,推荐系统需要处理海量数据,并在短时间内生成推荐结果。这要求我们在设计和实现推荐系统时,考虑到数据的分布式存储与处理、计算的高效性和系统的可扩展性。在这一课中,我们将…...

第三届通信网络与机器学习国际学术会议(CNML 2025)
在线投稿: 学术会议-学术交流征稿-学术会议在线-艾思科蓝 通信网络机器学习 通信理论 通信工程 计算机网络和数据通信 信息分析和基础设施 通信建模理论与实践 无线传感器和通信网络 云计算与物联网 网络和数据安全 光电子学和光通信 无线/移动通信和技术 智能通信…...
MySQL两阶段提交策略
书接上一篇文章,MySQL通过不同的策略来保证事务的ACID:原子性、一致性、隔离性、持久性,通过锁机制实现隔离性,通过redoundobinlog三种日志实现事务的原子性、一致性和持久性。 本文主要讲MySQL的持久性的一个实现机制-两阶段提交…...

uniapp商城之购物车模块
文章目录 一、列表渲染二、删除单品1.封装删除API2.按钮绑定事件三、修改单品数量1.复用步进器组件2.属性和事件的绑定3.接口封装4.调用接口四、修改商品选中/全选1.单品选中绑定事件调用修改API2.计算全选状态3.绑定事件调用全选API并渲染单品选中状态五、底部结算信息1.计算选…...

STM32_USART通用同步/异步收发器
目录 背景 程序 STM32浮空输入的概念 1.基本概念 2. STM32浮空输入的特点 3. STM32浮空输入的应用场景 STM32推挽输出详解 1. 基本概念 2. 工作原理 3. 应用场景 使能外设时钟 TXE 和 TC的区别 USART_IT_TXE USART_IT_TC 使能串口外设 中断处理函数 背景 单片…...

python自动化测试之Pytest框架之YAML详解以及Parametrize数据驱动!
一、YAML详解 YAML是一种数据类型,它能够和JSON数据相互转化,它本身也是有很多数据类型可以满足我们接口 的参数类型,扩展名可以是.yml或.yaml 作用: 1.全局配置文件 基础路径,数据库信息,账号信息&…...
python基础入门:6.3异常处理机制
Python异常处理全面指南:构建健壮程序的关键技术 # 完整异常处理模板 def process_file(file_path):"""文件处理示例函数"""file Nonetry:file open(file_path, r, encodingutf-8)data json.load(file)if not data:raise EmptyDa…...

Mybatis快速入门与核心知识总结
Mybatis 1. 实体类(Entity Class)1.1 实体类的定义1.2 简化编写1.2.1 Data1.2.2 AllArgsConstructor1.2.3 NoArgsConstructor 2. 创建 Mapper 接口2.1 Param2.2 #{} 占位符2.3 SQL 预编译 3. 配置 MyBatis XML 映射文件(可选)3.1 …...

畅聊deepseek-r1,SiliconFlow 硅基流动注册+使用
文章目录 SiliconFlow 硅基流动注册使用注册创建API密钥使用网页端使用代码调用api调用支持的模型 SiliconFlow 硅基流动注册使用 注册 硅基流动官网 https://cloud.siliconflow.cn/i/XcgtUixn 注册流程 切换中文 邀请码: XcgtUixn 创建API密钥 账户管理 --&g…...

一个基于ESP32S3和INMP441麦克风实现音频强度控制RGB灯带律动的代码及效果展示
一个基于ESP32S3和INMP441麦克风实现音频强度控制RGB灯带律动的代码示例,使用Arduino语言: 硬件连接 INMP441 VCC → ESP32的3.3VINMP441 GND → ESP32的GNDINMP441 SCK → ESP32的GPIO 17INMP441 WS → ESP32的GPIO 18INMP441 SD → ESP32的GPIO 16RG…...

Springboot 中如何使用Sentinel
在 Spring Boot 中使用 Sentinel 非常方便,Spring Cloud Alibaba 提供了 spring-cloud-starter-alibaba-sentinel 组件,可以快速将 Sentinel 集成到你的 Spring Boot 应用中,并利用其强大的流量控制和容错能力。 下面是一个详细的步骤指南 …...

访问Elasticsearch服务 curl ip 端口可以 浏览器不可以
LINUX学习 在虚拟机上面的linux上面用docker 部署Elasticsearch项目后,在linux系统内部用curl ip 端口地址的形式可以访问到Elasticsearch。可以返回数据。 但是在本机的浏览器中输入ip 端口,会报错,找不到服务。 ping 和 trelnet均不通。 …...

Curser2_解除机器码限制
# Curser1_无限白嫖试用次数 文末有所需工具下载地址 Cursor Device ID Changer 一个用于修改 Cursor 编辑器设备 ID 的跨平台工具集。当遇到设备 ID 锁定问题时,可用于重置设备标识。 功能特性 ✨ 支持 Windows 和 macOS 系统🔄 自动生成符合格式的…...

人工智能与低代码如何重新定义企业数字化转型?
引言:数字化转型的挑战与机遇 在全球化和信息化的浪潮中,数字化转型已经成为企业保持竞争力和创新能力的必经之路。然而,尽管“数字化”听上去是一个充满未来感的词汇,落地的过程却往往充满困难。 首先,传统开发方式…...
【Linux】C语言执行shell指令
在C语言中执行Shell指令 在C语言中,有几种方法可以执行Shell指令: 1. 使用system()函数 这是最简单的方法,包含在stdlib.h头文件中: #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

Ascend NPU上适配Step-Audio模型
1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...

多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)
在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马(服务器方面的)的原理,连接,以及各种木马及连接工具的分享 文件木马:https://w…...
Fabric V2.5 通用溯源系统——增加图片上传与下载功能
fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...
【Go语言基础【12】】指针:声明、取地址、解引用
文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...

人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...

R 语言科研绘图第 55 期 --- 网络图-聚类
在发表科研论文的过程中,科研绘图是必不可少的,一张好看的图形会是文章很大的加分项。 为了便于使用,本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中,获取方式: R 语言科研绘图模板 --- sciRplothttps://mp.…...
python爬虫——气象数据爬取
一、导入库与全局配置 python 运行 import json import datetime import time import requests from sqlalchemy import create_engine import csv import pandas as pd作用: 引入数据解析、网络请求、时间处理、数据库操作等所需库。requests:发送 …...