Releases: qingfeng346/Scorpio-CSharp
Releases · qingfeng346/Scorpio-CSharp
v2.0.1
新增功能
- 新增 ?? 表达式, 返回值为 null 则返回 ?? 后的值
其他修改
- 运行文件 修改为 .net core 3.0 生成, 提升启动速度, 优化文件大小
v2.0.0
主要内容
- 运行方式改为IL执行,执行效率大幅提升
- 增加原表操作
- 其他修改内容可以查看 v2.0.0-preview 版本更新日志
v2.0.0_preview11
v2.0.0-preview10
修改内容
- 增加switch语法 示例参考
- 支持 long 和 double 之间直接运算比较
- lambada 表达式申请的函数, this 继承父级 示例参考
- 支持动态定义class 示例参考
- foreach pairs 支持传入 type 实例 和 _G
- Array 原表增加 join 函数
- Map 原表增加 forEach forEachValue 函数
- Array Map forEach 函数返回 false 时停止循环
- math 库增加 三角函数
- 快速反射支持 op_Implicit 函数
- 命令行增加 version 命令
- 优化 == 运行逻辑
BUG修复
- 修复 + 运算符 右侧为 string 时某些情况下返回的不是 string 的问题
- 修复 快速反射 构造函数含有 ref out 标识时生成出错
v2.0.0-preview9
v2.0.0_preview8
新增功能
- 增加原表操作, 基础原表目录 Scorpio/src/Proto 脚本示例
- 原表支持运算符重载 基础类型(number,string,bool,null)除外 脚本示例
- 支持调用含有 ref out 标识的函数 脚本示例
- 快速反射支持创建模板函数,支持 ref out 标识的函数
- c#数组支持直接 [] 获取元素 脚本示例
- c#重载 []中括号(除去key为string的重载), 支持 [] 直接调用 脚本示例
- c#元素支持 += -= 等 运算符赋值操作
- 支持生成脚本 IL 文件,运行时可以省去解析编译的过程
- 添加 ScriptNamespace 类, 可以使用 importNamespace 导入, 引用c#的命名空间
- 增加 IO 库
- 命令行增加生成快速反射文件和IL文件命令, 可以使用 sco -help 查看
- 优化脚本性能, 修改为栈编译运行,部分运行测试,左侧为2.0版本,测试结果,基础运算大幅提升,其他操作也有较大的提升
修改功能
- 所有库函数名重写,命名规则为骆驼式命名法, 第一个单词以小写字母开始,从第二个单词开始以后的每个单词的首字母都采用大写字母, 不过可以调用Script.LoadLibraryV1, 兼容 1.0 命名规则库
- function内的this变量规则为前置变量,规则参考javascript 脚本示例
- 设置快速反射类的函数修改为 Scorpio.Userdata.TypeManager.SetFastReflectClass
删除功能
- 删除 kpairs vpairs 函数
- 删除 try catch
- 删除 switch 语法
- 删除引用扩展函数,请使用静态函数方式调用
v1.0.11
- 修复一个去反射函数调用的BUG
- 支持自动关联 c# delegate,省去 DelegateFactory 的设置
v1.0.10
- 添加 io 库
- table 库添加 define_function 函数, 可以动态申请内部函数,例如
var tab = { num = 100 }
table.define_function(tab, "fun", function() {
return this.num
})
print(tab.fun()) //输出100
- # 可以代替 function 关键字申请函数, 示例:
#test() { }
//等同于
function test() { }
v1.0.9
- 支持 ` 符号申请字符串, 用法同 单引号 双引号一致, 支持 @ 符号
v1.0.8
- 申请array时分隔符支持 分号 ; 示例;
var a = [100;200;300]
//等同于
var a = [100,200,300]
- 支持脚本直接调用c#运算符
运算符号 | 反射名称 | 脚本直接调用 |
---|---|---|
+ | op_Addition | 支持(+= 不支持) |
- | op_Subtraction | 支持(-= 不支持) |
* | op_Multiply | 支持(*= 不支持) |
/ | op_Division | 支持(/= 不支持) |
% | op_Modulus | 支持(%= 不支持) |
| | op_BitwiseOr | 支持(|= 不支持) |
& | op_BitwiseAnd | 支持(&= 不支持) |
^ | op_ExclusiveOr | 支持(^= 不支持) |
> | op_GreaterThan | 支持 |
>= | op_GreaterThanOrEqual | 支持 |
< | op_LessThan | 支持 |
<= | op_LessThanOrEqual | 支持 |
== | op_Equality | 不支持 |
!= | op_Inequality | 不支持 |
[] | get_Item(获取变量) | 不支持 |
[] | set_Item(设置变量) | 不支持 |