网站首页 > 基础教程 正文
介绍一下 aardio v35.130 几个重要更新。这只是两天的更新工作量,数十年来 aardio 一直如此,从未懈怠。
一、语法改进
重载 _get,_set 操作符时可通过新增的 ownerCall, ownerAttr 参数适应一些复杂的语法要求,例如对于以下代码通过重载操作符分别作出不同处理:
var a = obj.name;
var a = obj.name();
var a = obj["name"];
obj["name"] = a;
obj.name = a;
细节请参考新版语法文档。
下面说说带来的好处:
例如调用 .NET 组件原来必须写大量的 object.Item["索引"]。在新版本中不用再这样写了,可以像 C# 一样简化为 object["索引"]。注意这个改进是与旧版兼容的,原来的写法不受影响。
再例如调用 Python,Python 中 a.b 与 a["b"] 是语法区分的,aardio 新版对 Python 扩展库进行了大幅重构,可以与 Python 保持一致。
二、Python 扩展库改进
以下 Python 扩展库做了大幅度改进:
py3;
py3.4;
py3.10;
py2;
本次改进大幅简化 aardio + Python 的调用接口。
原来几十句的范例,现在简化到只有 3句:
import py3;
//导入 Python 模块
var math = py3.import("math");
//调用 Python 函数
var ret = math.floor(22.3);
原来需要写很多解释去理解什么是 parseValue,为什么要 parseValue,现在不需要了,全部自动转换了。
这也是为什么 aardio 越做越小的原因。
三、web.view 大幅改进
web.view 真是个强大的好东西,免费、强悍、生成的软件体积小。自从有了这个我再也没用过 Electron 。
新版本中,创建 web.view 可以指定更多选项,示例:
var wb = web.view(winform,{
//启用浏览器扩展,
extensions = true;
//自定义浏览器界面语言
language = "zh-CN";
//浏览器启动参数
startArguments = {
proxyServer = "SOCKS5://IP地址:端口,direct://";
acceptLang = "zh-CN";
};
//自定义用户数据目录,每个不同的目录都可以创建独立会话。
userDataDir = userDataDir
//浏览器最低兼容版本
compatibleBrowserVersion = "86.0.616.0";
})
所有参数都是可选的,可用的浏览器启动参数可参考 Edge 或 Chrome 相关文档。
仍然可以使用旧版的参数写法,也可以这些启动参数。
新版可通过指定下面的选项启用浏览器扩展:
var wb = web.view(winform,{
//启用浏览器扩展,
extensions = true;
})
然后就可以用下面的代码加载浏览器扩展了:
wb.loadExtension("/扩展目录")
web.view 提供了一个更省事的方法,只要导入下面的库:
import chrome.extensions;
wb.loadExtension 就可以在参数里直接写 Edge,Chrome 这些浏览器安装的浏览器扩展 ID(扩展设置里可以看到)。
四、添加 dotNet.ReoGrid 扩展库
ReoGrid 是一个开源、免费、强大的 Excel 表格组件。这是一个 .NET 组件。
其实 aardio 可以直接使用 .NET 组件,看 ReoGrid 文档示例就可以了,C#示例基本可以照搬。这个扩展库我主要是做了一下内存加载 DLL,方便直接生成独立 EXE 文件。
这个库虽然 DLL 有点多,但是体积很小。
下面给个例子:
import win.ui;
var winform = win.form(text="ReoGrid";)
import dotNet.ReoGrid;
//创建控件
var grid = ReoGrid.ReoGridControl(winform);
//当前工作表
var sheet1 = grid.CurrentWorksheet
//直接显示 aardio 数据
sheet1["B2:D4"] = {
{ "测试", "测试2" },
{ "测试3", "测试4" },
};
//直接显示 aardio 数据
sheet1["B3:C5"] = { { 'a', 'b', 'c' }, { 1, 2, 3 }, { 4, 5, 6 } };
//修改数据
sheet1.SetCellData(5, 2, "hello world");
//高亮
sheet1.AddHighlightRange("B2:D4");
//保存文件
grid.Save("/test.xlsx");
winform.show();
win.loopMessage();
很简单吧。
五、增加复数扩展库 math.complex 。
这个扩展库其实很简单,就是直接调用 C 语言里的 _Complex。
aardio 调用 C 语言接口非常方便,不需要声明 API 就可以直接调用 C 组件函数。而且 C 编译的组件体积很小、速度快、在 aardio 里可以内存加载不用外带 DLL 文件。
下面看个例子:
import console.int;
import math.complex;
var c = math.complex(2, 3);
console.log(c *2)
也很简单。
猜你喜欢
- 2025-03-19 LeetCode 力扣官方题解 | 888.公平的糖果棒交换
- 2025-03-19 豆包给我输出的html在线象棋源码(有点简单)
- 2025-03-19 实现希尔排序——Python(实现希尔排序算法)
- 2025-03-19 Python 除法运算操作指南(python的除法运算符/取余运算)
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)