这是本文档旧的修订版!
| 类型 | 描述 |
| boolean | 逻辑类型命名空间 |
| number | 数值类型命名空间 |
| pointer | 指针类型命名空间 |
| 方法 | 描述 |
| var clone(var) | 复制一个变量并返回 |
| var move(var) | 将变量标记为右值 |
| [range] range(number stop) | 生成一个步长为 1 的一个区间[0, stop) |
| [range] range(number start, number stop) | 生成一个步长为 step 默认为 1 的区间 [start, stop) |
| [range] range(number start, number stop, number step = 1) | 生成一个步长为 step 的区间 [start, stop) |
| void swap(var, var) | 交换两个变量的值 |
| number to_integer(var) | 将一个变量转换为整数 |
| string to_string(var) | 将一个变量转换为字符串 |
| string type(var) | 获取一个变量的类型名称 |
注意,range 函数生成的区间,仅可用于 foreach 遍历操作,如:
foreach num in range(10) do system.out.println(num)
异常域为所有异常提供了统一的方法。一般来说,不同类型的异常来自不同的命名空间(例如runtime.exception),但他们的设计大相径庭。
| 代码 | 功能 |
| string what([exception]) | *获取异常详情 |
注意:目前只有 runtime 命名空间下的 exception 可用。
| 方法 | 描述 |
| [istream] ifstream(string path) | 新建一个输入文件流(openmode.in) |
| [ostream] ofstream(string path) | 新建一个输出文件流(openmode.out) |
| [istream/ostream] fstream(string path, [openmode] mode) | 新建一个文件流,其具体类型取决于打开方式 |
| oid setprecision(number) | 设置输出精度(to_string 的精度) |
| 单例对象 | 描述 |
| start | 流的开始 |
| finish | 流的结尾 |
| present | 当前位置 |
| 代码 | 功能 |
| in | 为读打开(输入流) |
| bin_in | 为读打开(输入流,二进制) |
| out | 为写打开(清空内容, 输出流) |
| bin_out | 为写打开(清空内容, 输出流, 二进制) |
| app | 为写打开(追加内容, 输出流) |
| bin_app | 为写打开(追加内容, 输出流, 二进制 |
| 方法 | 描述 |
char get([istream])
| 从流中读取一个字符 |
char peek([istream])
| 从流中预读取下一个字符(读取但不删除) |
void unget([istream])
| 向流中放回一个字符 |
string getline([istream])
| 从流中读取一行字符串 |
number tell([istream])
| ?获取流位置指示器 |
void seek([istream], number pos)
| 设置流位置 |
void seek_from([istream], [seekdir], number offset)
| ?设置相对寻位方向的流位置 |
boolean good([istream])
| 流是否正常打开?检查是否有错误 |
boolean eof([istream])
| 检查是否到达文件?流结尾 |
var input([istream])
| 从流中获取输入(格式化) |
void ignore([istream])
| 忽略?流中当前及以前行所有内容 |
| 代码 | 功能 |
| void put([ostream], char) | 向流中插入字符 |
| number tell([ostream]) | 获取流位置指示器 |
| void seek([ostream], number pos) | 设置流位置 |
| void seek_from([ostream], [seekdir], number offset) | 设置相对寻位方向的流位置 |
| void flush([ostream]) | ?与底层存储设备同步 |
| boolean good([ostream]) | 流是否正常打开?检查是否有错误 |
| void print([ostream], var) | 向流中输出内容,仅可输出支持 to_string 的类型(不换行) |
| void println([ostream], var) | 向流中输出内容,仅可输出支持 to_string 的类型(换行) |
| 代码 | 功能 |
| [istream] get_istream([char_buff]) | 转换至输入流 |
| [ostream] get_ostream([char_buff]) | 转换至输出流 |
| string get_string([char_buff]) | 将实际缓冲区转换为字符串 |
| 单例对象 | 描述 |
| in | 标准输入流 |
| out | 标准输出流 |
| 方法 | 描述 |
| oid exit(number) | 清理资源并退出进程 |
| boolean is_platform_darwin() | 判断是否为 macOS 平台 |
| boolean is_platform_linux() | 判定是否为 Linux 平台 |
| boolean is_platform_unix() | 判断是否为 Unix 兼容平台 |
| boolean is_platform_windows() | 判定是否为 Windows 平台 |
| number run(string) | 在系统环境中运行一条指令,并返回错误码 |
| string getenv(string) | 获取环境变量 |
| 方法 | 描述 |
| oid clrscr() | 清屏 |
| oid echo(boolean) | 设置光标可见性 |
| char getch() | 从键盘获取输入的一个字符 |
| oid gotoxy(number x, number y) | 工作不正常?移动光标至x,y |
| bool kbhit() | 工作不正常按一次永久为true?判断是否有键盘输入 |
| number terminal_height() | 获取控制台高度(单位:像素) |
| number terminal_width() | 获取控制台宽度(单位:像素) |
| 方法 | 描述 |
| boolean copy(string path, string target_path) | 复制path文件到targetpath。若path不存在则 target_path 为空文件且返回 false,否则返回 true;若 target_path 已存在则覆盖 |
| boolean remove(string path) | 删除文件 |
| boolean exists(string path) | 判断文件是否存在 |
| boolean rename(string path,string target_path) | 重命名/移动文件。若path不存在或target_path存在则不执行,且返回 false,否则返回 true |
| boolean is_file(string path) | 判定一个路径是否为文件 |
| boolean is_directory(string path) | 判定一个路径是否为目录 |
| boolean can_read(string path) | 判定一个路径是否具有可读权限 |
| boolean can_write(string path) | 判定一个路径是否具有可写权限 |
| boolean can_execute(string path) | 判定一个文件是否为可执行文件 |
| boolean mkdir(string path) | 创建一个目录,成功返回真 |
| boolean mkdir_p(string path) | 递归创建一个目录,成功返回真 |
| boolean chmod(string path,string mod) | 更改路径权限 |
| boolean chmod_r(string path,string mod) | 递归更改路径权限 |
注意:更改路径权限这里,权限使用特定格式的字符串指定,格式如下:
字符串可以分为三组字符,每一组有三个,每个字符都代表不同的权限,分别为
读取(r)、
写入(w)和
执行(x),例如
(rwxr-xr--)
| 单例对象 | 描述 |
| char separator | 路径分隔符 |
| char delimiter | 路径定界符 |
| array scan(string) | 扫描路径并返回由path_info类型组成的array |
3.4.3.1 路径类型(system.type)
| 单例对象 | 描述 |
| unknown | 未知 |
| fifo | 管道 |
| sock | 套接字 |
| chr | 字符设备 |
| dir | 文件夹 |
| blk | 块设备 |
| reg | 常规 |
| lnk | 链接 |
3.4.3.2 路径信息(system.path.info)
| 代码 | 功能 |
| string name([path_info]) | *获取路径名 |
| [path_type] type([path_info]) | *获取路径类型 |
| 单例对象 | 描述 |
| number std_version | 标准版本号 |
| 方法 | 描述 |
| oid add_literal([context], string literal, [function] func) | 注册字面量处理函数 |
| number argument_count([function] func) | 返回函数的参数数量 |
| [expression] build([context], string) | 构建一个可用于计算的表达式 |
| array cmd_args([context]) | *返回由 string 构成的运行参数 array |
| oid delay(number) | 使程序暂停一段时间,单位毫秒(但不停止计时) |
| [exception] exception(string) | 返回一个新建运行时异常 |
| string get_current_dir() | 返回当前执行路径 |
| string get_import_path() | 获取引入目录 |
| [hash_value] hash(var) | 计算一个变量的哈希值 |
| [namespace] import([context], string folder_path, string name) | 从 folder_path 动态加载一个扩展,其规则与 import 语句相同 |
| oid info() | 从标准输出流输出解释器版本信息 |
| [time_type] local_time() | 获取当地时间和日期 |
| var solve([context], [expression]) | 计算一个表达式 |
| [namespace] source_import([context], string path) | 动态加载一个扩展,需指定详细路径和文件名 |
| number time() | 获取计时器的读数,单位毫秒 |
| [time_type] utc_time() | 获取 UTC 时间和日期 |
| var wait_for(number time, [function] func, array args) | 使用传入的参数执行函数,等待指定时间(毫秒)后若函数仍未完成则抛出异常 |
| var wait_until(number time, [function] func, array args) | 使用传入的参数执行函数,直到指定时间(毫秒)后若函数仍未完成则抛出异常 |
| 方法 | 描述 |
| number sec([time_type]) | *分后之秒,范围是[0, 60*] |
| number min([time_type]) | *时后之分,范围是[0, 59*] |
| number hour([time_type]) | *自午夜起之时,范围是[0, 23*] |
| number wday([time_type]) | *自星期日起之日,范围是[0, 6*] |
| number mday([time_type]) | *月之日,范围是[1, 31*] |
| number yday([time_type]) | *自 1 月 1 日起之日,范围是[0, 365*] |
| number mon([time_type]) | *自一月起之月,范围是[0, 11*] |
| number year([time_type]) | *自 1900 起之年 |
| boolean is_dst([time_type]) | *是否为夏令时 |
| 方法 | 描述 |
| number abs(number) | 绝对值 |
| number ln(number) | 以 e 为底的对数 |
| number log10(number) | 以 10 为底的对数 |
| number log(number a, number b) | 以 a 为底 b 的对数 |
| number sin(number) | 正弦值(弧度) |
| number cos(number) | 余弦值(弧度) |
| number tan(number) | 正切值(弧度) |
| number asin(number) | 反正弦值(弧度) |
| number acos(number) | 反余弦值(弧度) |
| number atan(number) | 反正切值(弧度) |
| number sqrt(number) | 开方 |
| number root(number a, number b) | a 的 b 次方根 |
| number pow(number a, number b) | a 的 b 次方 |
| number min(number a, number b) | a 和 b 的最小值 |
| number max(number a, number b) | a 和 b 的最大值 |
| number rand(number, number) | 获取区间内的伪随机数 |
| number randint(number, number) | 获取区间内的伪随机整数 |
| 单例对象 | 描述 |
| number max | 数值类型最大值 |
| number min | 数值类型最小值 |
| number inf | 数值类型正无穷 |
| number nan | 数值类型无意义 |
| number pi | 圆周率 |
| number e | 自然底数 |
| 方法 | 描述 |
| boolean isalnum(char) | 检查字符是否是字母或数字 |
| boolean isalpha(char) | 检查字符是否是字母 |
| boolean islower(char) | 检查字符是否是小写字母 |
| boolean isupper(char) | 检查字符是否是大写字母 |
| boolean isdigit(char) | 检查字符是否是数字 |
| boolean iscntrl(char) | 检查字符是否是控制字符 |
| boolean isgraph(char) | 检查字符是否是图形字符 |
| boolean isspace(char) | 检查字符是否是空白字符 |
| boolean isblank(char) | 检查字符是否是空格或 tab |
| boolean isprint(char) | 检查字符是否是打印字符 |
| boolean ispunct(char) | 检查字符是否是标点符号 |
| char tolower(char) | 将字符转换为小写 |
| char toupper(char) | 将字符转换为大写 |
| char from_ascii(number) | 将 ascii 码转换为字符 |
| 方法 | 描述 |
| string append(string, var) | 在尾部追加内容 |
| oid assign(string, number index,char ch) | 在字符串 index 处给字符赋值 |
| oid clear(string) | 清空 |
| string cut(string, number count) | 从尾部删除指定长度的字符串 |
| boolean empty(string) | 检查字符串是否为空 |
| number find(string, string target, number begin) | 返回从指定位置开始匹配到的第一个子串下标 |
| string insert(string, number index, var) | 在指定位置处插入内容 |
| string replace(string, number begin, number count, var) | 将从指定位置开始的指定个数字符替换 |
| number rfind(string, string target, number begin) | 从指定位置开始从右向左查找一段字符串 |
| number size(string) | *获取字符个数 |
| array split(string,array) | 使用指定的字符集合分割字符串,返回由 string 组成的 array |
| string substr(string, number begin, number count) | 返回从指定位置截取指定长度的字符串 |
| number to_number(string) | 将字符串转换为数值 |
| string tolower(string) | 将字符串转换为小写 |
| string toupper(string) | 将字符串转换为大写 |
| 方法 | 描述 |
| var at(array, number) | 访问指定的元素,同时进行越界检查 |
| var front(array) | *访问第一个元素 |
| var back(array) | *访问最后一个元素 |
| [iterator] begin(array) | *获取指向容器第一个元素的迭代器 |
| [iterator] end(array) | *获取指向容器尾端的迭代器 |
| boolean empty(array) | 检查容器是否为空 |
| number size(array) | *获取容纳的元素数 |
| void clear(array) | 删除全部内容 |
| [iterator] insert(array, [iterator], var) | 插入元素,插入到迭代器指向的元素之前,返回指向插入元素的迭代器 |
| [iterator] erase(array, [iterator]) | 删除元素,返回指向要删除的元素的下一个元素的迭代器 |
| void push_front(array, var) | 在容器的开始处插入新元素 |
| var pop_front(array) | 删除第一个元素并返回 |
| void push_back(array, var) | 将元素添加到容器末尾 |
| var pop_back(array) | 删除最后一个元素并返回 |
| hash_map to_hash_map(array) | 将数组转换为散列表,要求数组中元素必须都是映射 |
| list to_list(array) | 将数组转换为链表 |
| 方法 | 描述 |
| [iterator] next([iterator]) | 向前移动并返回迭代器 |
| [iterator] next_n([iterator]) | 同 next,向前移动 n 个单位并返回 |
| [iterator] prev([iterator]) | 向后移动并返回迭代器 |
| [iterator] prev_n([iterator]) | 同 prev,向后移动 n 个单位并返回 |
| var data([iterator]) | *访问迭代器指向的元素 |
| 方法 | 描述 |
| var front(list) | *访问第一个元素 |
| var back(list) | *访问最后一个元素 |
| [iterator] begin(list) | *获取指向容器第一个元素的迭代器 |
| [iterator] end(list) | *获取指向容器尾端的迭代器 |
| boolean empty(list) | 检查容器是否为空 |
| number size(list) | *获取容纳的元素数 |
| void clear(list) | 删除全部内容 |
| [iterator] insert(list, [iterator], var) | 插入元素, 插入到迭代器指向的元素之前,返回指向插入的元素的迭代器 |
| [iterator] erase(list, [iterator]) | 删除元素,返回指向要删除的元素的下一个元素的迭代器 |
| void push_front(list, var) | 在容器的开始处插入新元素 |
| var pop_front(list) | 删除并返回第一个元素 |
| void push_back(list, var) | 将元素添加到容器末尾 |
| var pop_back(list) | 删除并返回最后一个元素 |
| void remove(list, var) | 删除所有与指定变量相等的元素 |
| void reverse(list) | 将该线性表的所有元素的顺序反转 |
| void unique(list) | 删除连续的重复元素 |
| 方法 | 描述 |
| [iterator] next([iterator]) | 向前移动迭代器 |
| [iterator] prev([iterator]) | 向后移动迭代器 |
| var data([iterator]) | *访问迭代器指向的元素 |
| 方法 | 描述 |
| var first(pair) | *获取第一个元素 |
| var second(pair) | *获取第二个元素 |
| 方法 | 描述 |
| boolean empty(hash_map) | 检查容器是否为空 |
| number size(hash_map) | *获取容纳的元素数 |
| void clear(hash_map) | 删除全部内容 |
| void insert(hash_map, var, var) | 插入一个映射 |
| void erase(hash_map, var) | 删除键对应的映射 |
| var at(hash_map, var) | 访问指定的元素,同时进行越界检查 |
| boolean exist(hash_map, var) | 查找是否存在映射 |