# Runtime API
本文档主要是列举了OpenEX运行时实现的一些基础运行库和函数,其包含了
- OpenEX Runtime Library OpenEX运行库实现
- StamonVM Native Library StamonVM本地库实现
StamonVM Native Library 主要用于兼容StamonVM,其库主要是相对于面向对象的语法实现的
请谨慎使用这些库函数(或库方法)
# Sys OpenEX Basic Library
System系统库,实现了OpenEX的标准输入输出和线程创建、系统信息获取等函数
是OpenEX基础库之一,也是第一个被开发的运行库
// 运行库ID 'system'
include "system";
1
2
2
# 函数列表
返回值为
NULL
代表可能没有返回值或返回结果可能为NULL
system.print(_INFO_);
/*
* OpenEX标准输出
* _INFO_ : 输入的信息(不限类型)
* 返回值: 无
*/
1
2
3
4
5
6
2
3
4
5
6
# input
system.input();
/*
* OpenEX标准输入
* 无需形参
* 返回值: STRING(返回获取到的输入结果)
*/
1
2
3
4
5
6
2
3
4
5
6
# sleep
system.sleep(_TIME_);
/*
* 线程休眠指定时间
* _TIME_ : 休眠的时间(INTEGER)
* 返回值: 无
*/
1
2
3
4
5
6
2
3
4
5
6
# stop
system.stop(_CODE_);
/*
* 终止OpenEX运行时
* _CODE_ : 退出代码(INTEGER)
* 返回值: 无
*/
1
2
3
4
5
6
2
3
4
5
6
# memory
system.memory();
/*
* 获取OpenEX内存占用率
* 无需形参
* 返回值: DOUBLE(占用大小(MB))
*/
1
2
3
4
5
6
2
3
4
5
6
# sysinfo
system.sysinfo(_ID_);
/*
* 获取系统信息
* _ID_ : 信息代号(STRING)
- os : 获取操作系统名称
- version : 获取OpenEX更新号
- svm : 获取脚本是否运行在StamonVM环境上
- edition : 获取OpenEX版本号
* 返回值: STRING(获取到的信息)
*/
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# thread
system.thread(_NAME_,_FUNCTION_);
/*
* OpenEX标准输出
* _NAME_ : 线程名称(STRING)
* _FUNCTION_ : 该脚本定义的函数名
* 返回值: 无
*/
1
2
3
4
5
6
7
2
3
4
5
6
7
# Array OpenEX Basic Library
Array数组操作库,其实现了各种对数组指定索引取值和重赋值的接口
某些数组操作表达式也是直接被转译成Array库的调用
// 运行库ID `array`
include "array";
1
2
2
# 函数列表
返回值为
NULL
代表可能没有返回值或返回结果可能为NULL
# get_object
array.get_object(_ARRAY_,_INDEX_);
/*
* 获取指定索引上的元素
* _ARRAY_ : 数组(ARRAY)
* _INDEX_ : 索引(INTEGER)
* 返回值: 获取到的元素(不限类型)
*/
1
2
3
4
5
6
7
2
3
4
5
6
7
# set_object
array.set_object(_ARRAY_,_INDEX_,_OBJECT_);
/*
* 设置指定索引上的元素
* _ARRAY_ : 数组(ARRAY)
* _INDEX_ : 索引(INTEGER)
* _OBJECT_ : 元素(不限类型)
* 返回值: NULL
*/
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# length
array.length(_ARRAY_);
/*
* 获取数组的长度
* _ARRAY_ : 数组(ARRAY)
* 返回值: 长度(INTEGER)
*/
1
2
3
4
5
6
2
3
4
5
6
# to_string
array.to_string(_ARRAY_);
/*
* 返回数组所有元素的信息
* _ARRAY_ : 数组(ARRAY)
* 返回值: 元素信息(STRING)
*/
1
2
3
4
5
6
2
3
4
5
6
# StringLib OpenEX Util Library
StringLib 字符串操作库,实现了各种对字符串的查询,分割等功能
// 运行库ID `string`
include "string";
1
2
2
# 函数列表
返回值为
NULL
代表可能没有返回值或返回结果可能为NULL
# split
string.split(_STR_,_SSTR_);
/*
* 分割字符串
* _STR_ : 被分割的字符串(STRING)
* _SSTR_ : 分割依据(STRING)
* 返回值: 分割后的数组(ARRAY)
*/
1
2
3
4
5
6
7
2
3
4
5
6
7
# indexof
string.split(_STR_,_SSTR_);
/*
* 查询一个子串在父串中第一次出现的位置
* _STR_ : 父串(STRING)
* _SSTR_ : 子串(STRING)
* 返回值: 查询到的索引位置(INTEGER)
*/
1
2
3
4
5
6
7
2
3
4
5
6
7
# contains
string.split(_STR_,_SSTR_);
/*
* 比较父串是否包含子串
* _STR_ : 父串(STRING)
* _SSTR_ : 子串(STRING)
* 返回值: 如果包含返回true(BOOL)
*/
1
2
3
4
5
6
7
2
3
4
5
6
7