IOSL简介
无意的想法,有意的栽培,从最初的表达式脚本渐渐的演化成了一门脚本语言,它名字叫叫输入/输出脚本语言(In/Out Script Language),简称IOSL。
它具备了动态语言的许多特性,例如:弱类型、面向过程、解析执行…,它有自己的函数库依赖于平台,以此完成许多复杂的功能。
它与其他语言最大的不同是,它天生就支持多输入、多输出,多输出是构建企业级通信层的一项重要特性,其他语言要实现多输出必须要把多个参数封装到一个结构里再返回(这也不叫多输出了J)。
还有,它是一门国产的语言。
IOSL语法的提炼
语法的提炼主要是引入重要的“语法糖”,主要目的是让语法更简洁、易读、易写,减少错误发生等。
严格的字符串定义
先看看原来的字符串定义
方式1:Str1 = 字符串1
方式2:Str2 = “字符串2”
方式3:Str2 = ‘字符串2’
新的设计中,我取消了方式1的字符串定义方式,要强制采用单、双引号来定义。这样做的目的,一是让语法更严谨,二是我要把方式1的定义方式用作变量的赋值(看下文)。
变量的自动解析
看看原来的脚本
Num = 0
Num = @Num+ 1
Num2 = @Num
Num3 = @Num+ @Num2
从上面的代码可以看到,要访问一个变量必须要在前头加上一个“@”符号,这对于脚本编写及其不便,定义的变量名是Num,但是读取时确变成了@Num,出现不一致性,而且容易漏掉“@”出错。
再看看新版的脚本
Num = 0
Num = Num + 1
Num2 = Num
Num3 = Num + Num2
少了多余的“@”符号,语法流畅多了。
内部函数定义
支持内部函数的定义,这样做能够把几个紧密关联的函数脚本同时放在同一个文件里,便于日后的阅读、管理、迁移等。
function name(type arg1, type arg2):type out1, type out2
//子语句
error
//子语句
end
end
下面是一个异步调用的例子,用定义一个回调内部函数,消息框确认后出发该函数。
function Callback
InvokeAction("删除数据")
end
ShowQuestion("确定要删除选择的行吗?", “Callback”)
结语
语法的提炼需要时间与经验的积累,这不会是一个轻松的事情,就上述几点语法的变动,我也不得不修改所有相关联的文件,试想如果连同一个紧迫的项目在进行,这些改动是灾难的会影响项目进度。
相关文章
备注
*技术交流与合作:QQ: 157859303;Email:caixh002@126.com