====== Covariant Script 标准包 ====== 标准包是内置于 CovScript 解释器中的各类功能和函数,是标准的组成部分之一 \\ ===== 3.1 全局作用域(global) ===== ^命名空间 ^描述 ^ |''exception'' |[[:manual:reference:package:standard:main_page#3.2 异常(exception)|3.2 异常命名空间]] | |''iostream'' |[[:manual:reference:package:standard:main_page#3.3 输入输出流(iostream)|3.3 输入输出流命名空间]] | |''system'' |[[:manual:reference:package:standard:main_page#3.4 系统(system)|3.4 系统命名空间]] | |''runtime'' |[[:manual:reference:package:standard:main_page#3.5 运行时(runtime)|3.5 运行时命名空间]] | |''math'' |[[:manual:reference:package:standard:main_page#3.6 数学(math)|3.6 数学命名空间]] | |''char'' |[[:manual:reference:package:standard:main_page#3.7 字符(char)|3.7 字符类型 & 命名空间]] | |''number'' |[[:manual:reference:package:standard:main_page#3.7 数值(number)|3.8 数值类型 & 命名空间]] | |''string'' |[[:manual:reference:package:standard:main_page#3.8 字符串(string)|3.9 字符串类型 & 命名空间]] | |''array'' |[[:manual:reference:package:standard:main_page#3.9 数组(array)|3.10 数组类型 & 命名空间]] | |''list'' |[[:manual:reference:package:standard:main_page#3.10 线性表(list)|3.11 链表类型 & 命名空间]] | |''pair'' |[[:manual:reference:package:standard:main_page#3.11 映射(pair)|3.12 映射类型 & 命名空间]] | |''hash_map'' |[[:manual:reference:package:standard:main_page#3.12 哈希映射(hash_map)|3.13 哈希映射类型 & 命名空间]] | |''hash_set'' |[[:manual:reference:package:standard:main_page#3.13 哈希集合(hash_set)|3.14 哈希集合类型 & 命名空间]] | \\ ^**单例对象** ^**描述** ^ | ''context'' | [[:manual:reference:package:standard:main_page#解释器上下文环境|解释器上下文环境 ]] | \\ ^**类型** ^**描述** ^ | ''float'' | 数值类型浮点实现 | | ''integer'' | 数值类型整数实现 | | ''boolean'' | 逻辑类型 | | ''pointer'' | 指针类型 | \\ ^方法 ^描述 ^ |var **clone**(var) |复制一个变量并返回 | |var **move**(var) |将变量标记为右值 | |void **swap**(var, 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) | |number **to_integer**(var) |将一个变量转换为整数 | |string **to_string**(var) |将一个变量转换为字符串 | |string **type**(var) |获取一个变量的类型名称 |
注意,range 函数生成的区间,仅可用于 foreach 遍历操作,如: foreach num in range(10) do system.out.println(num)
----------- \\ ===== 3.2 异常(exception) ===== 异常域为所有异常提供了统一的方法。一般来说,不同类型的异常来自不同的命名空间(例如runtime.exception),但他们的设计大相径庭。 ^代码 ^功能 ^ |string **what**([exception]) |获取异常详情 |
注意:目前只有 runtime 命名空间下的 exception 可用。
----- \\ ===== 3.3 输入输出流(iostream) ===== ^命名空间 ^描述 ^ | ''seekdir'' |[[:manual:reference:package:standard:main_page#3.3.1 寻位方向(seekdir)| 3.3.1寻位方向命名空间]] | | ''openmode'' |[[:manual:reference:package:standard:main_page#3.3.2 打开方式(open_mode)| 3.3.2打开方式命名空间]] | | ''istream'' |[[:manual:reference:package:standard:main_page#3.3.3 输入流(istream)| 3.3.3输入流命名空间]] | | ''ostream'' |[[:manual:reference:package:standard:main_page#3.3.4 输出流(ostream)| 3.3.4输出流命名空间]] | | ''char_buff'' |[[:manual:reference:package:standard:main_page#3.3.5 字符缓冲区类型(char_buff)| 3.3.5字符缓冲区类型 & 命名空间]] | ^方法 ^描述 ^ |[istream] **ifstream**(string path) |新建一个输入文件流(openmode.in) | |[ostream] **ofstream**(string path) |新建一个输出文件流(openmode.out) | |[istream/ostream] **fstream**(string path, [openmode] mode) |新建一个文件流,其具体类型取决于打开方式 | |void **setprecision**(number) |设置输出精度(to_string 的精度) | ==== 3.3.1 寻位方向(seekdir) ==== ^单例对象 ^描述 ^ |''start'' |流的开始 | |''finish'' |流的结尾 | |''present'' |当前位置 | ==== 3.3.2 打开方式(open_mode) ==== ^代码 ^功能 ^ |''in'' |为读打开(输入流) | |''bin_in'' |为读打开(输入流,二进制) | |''out'' |为写打开(清空内容, 输出流) | |''bin_out'' |为写打开(清空内容, 输出流, 二进制) | |''app'' |为写打开(追加内容, 输出流) | |''bin_app'' |为写打开(追加内容, 输出流, 二进制) | ==== 3.3.3 输入流(istream) ==== ^方法 ^描述 ^ |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]) |忽略?流中当前及以前行所有内容 | ==== 3.3.4 输出流(ostream) ==== ^代码 ^功能 ^ |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 的类型(换行) | ==== 3.3.5 字符缓冲区类型(char_buff) ==== ^代码 ^功能 ^ |[istream] **get_istream**([char_buff]) |转换至输入流 | |[ostream] **get_ostream**([char_buff]) |转换至输出流 | |string **get_string**([char_buff]) |将实际缓冲区转换为字符串 | ----- \\ ===== 3.4 系统(system) ===== ^命名空间 ^描述 ^ | ''console'' |[[:manual:reference:package:standard:main_page#3.4.1 控制台(system.console)| 3.4.1控制台命名空间]] | | ''file'' |[[:manual:reference:package:standard:main_page#3.4.2 文件(system.file)| 3.4.2文件命名空间]] | | ''path'' |[[:manual:reference:package:standard:main_page#3.4.3 路径(system.path)| 3.4.3路径命名空间]] | \\ ^选项代码 ^描述 ^ | ''in'' |标准输入流 | | ''out'' |标准输出流 | \\ ^方法 ^描述 ^ |void **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) |获取环境变量,当未找到时抛出异常 | ==== 3.4.1 控制台(system.console) ==== ^方法 ^描述 ^ |void **clrscr**() |清屏 | |void **echo**(boolean) |设置光标可见性 | |char **getch**() |从键盘获取输入的一个字符 | |void **gotoxy**(number x, number y) |移动光标至x,y | |bool **kbhit**() |判断是否有键盘输入 | |number **terminal_width**() |获取控制台宽度(单位:像素) | |number **terminal_height**() |获取控制台高度(单位:像素) | ==== 3.4.2 文件(system.file) ==== ^方法 ^描述 ^ |boolean **copy**(string path, string target_path) | 复制path文件到targetpath。若path不存在则 target_path 为空文件且返回 false,否则返回 true;若 target_path 已存在则覆盖 | |boolean **remove**(string path) | 删除文件 | |boolean **exist**(string path) | 判断文件是否存在 | |boolean **rename**(string path,string target_path) | 重命名/移动文件。若path不存在或target_path存在则不执行,且返回 false,否则返回 true | |number **ctime**(string path) | 返回文件的创建时间 (Unix Time) | |number **mtime**(string path) | 返回文件的修改时间 (Unix Time) | |boolean **can_read**(string path) | 判定一个路径是否具有可读权限 | |boolean **can_write**(string path) | 判定一个路径是否具有可写权限 | |boolean **can_execute**(string path) | 判定一个文件是否为可执行文件 | ==== 3.4.3 路径(system.path) ==== ^命名空间 ^描述 ^ | ''type'' |[[:manual:reference:package:standard:main_page#3.4.3.1 路径类型(system.path.type)| 3.4.3.1 路径类型命名空间]] | | ''info'' |[[:manual:reference:package:standard:main_page#3.4.3.2 路径信息(system.path.info)| 3.4.3.2 路径信息命名空间]] | \\ ^单例对象与方法 ^描述 ^ |char **separator** | 路径分隔符 | |char **delimiter** | 路径定界符 | |array **scan**(string) | 扫描路径并返回由 path_info 类型组成的 array | |boolean **copy**(string path, string target_path) | 复制path文件到targetpath。若path不存在则 target_path 为空文件且返回 false,否则返回 true;若 target_path 已存在则覆盖 | |boolean **remove**(string path) | 删除文件 | |boolean **exist**(string path) | 判断目录是否存在 | |boolean **rename**(string path,string target_path) | 重命名/移动文件。若path不存在或target_path存在则不执行,且返回 false,否则返回 true | |boolean **mkdir**(string path) | 创建一个目录,成功返回真 | |boolean **mkdir_p**(string path) | 递归创建一个目录,成功返回真 | |boolean **chmod**(string path,string mod) | 更改路径权限 | |boolean **chmod_r**(string path,string mod) | 递归更改路径权限 | |boolean **is_file**(string path) | 判定一个路径是否为文件 | |boolean **is_directory**(string path) | 判定一个路径是否为目录 |
注意:更改路径权限这里,权限使用特定格式的字符串指定,格式如下:
字符串可以分为三组字符,每一组有三个,每个字符都代表不同的权限,分别为读取(r)写入(w)执行(x),例如(rwxr-xr--)

=== 3.4.3.1 路径类型(system.path.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]) |获取路径类型 | ----- \\ ===== 3.5 运行时(runtime) ===== ==== 运行时命名空间 ==== ^命名空间 ^描述 ^ | ''time_type'' |[[:manual:reference:package:standard:main_page#3.5.1 时间类型命名空间(runtime.time_type)| 3.5.1 时间类型命名空间]] | ^单例对象 ^描述 ^ |number **std_version** | 标准版本号 | ^方法 ^描述 ^ |void **info**() |从标准输出流输出解释器版本信息 | |[hash_value] **hash**(var) |计算一个变量的哈希值 | |number **time**() |获取计时器的读数,单位毫秒 | |void **delay**(number) |使程序暂停一段时间,单位毫秒(但不停止计时) | |[time_type] **local_time**() |获取当地时间和日期 | |[time_type] **local_time**(number unix_time) |从 Unix Time 构建本地时间和日期 | |[time_type] **utc_time**() |获取 UTC 时间和日期 | |[time_type] **utc_time**(number unix_time) |从 Unix Time 构建 UTC 时间和日期 | |[exception] **exception**(string) |返回一个新建运行时异常 | |number **argument_count**([function] func) |返回函数的参数数量 | |string **get_current_dir**() |返回当前执行路径 | |string **get_import_path**() |获取引入目录 | |var **wait_for**(number time, [function] func, array args) |使用传入的参数执行函数,等待指定时间(毫秒)后若函数仍未完成则抛出异常 | |var **wait_until**(number time, [function] func, array args) |使用传入的参数执行函数,直到指定时间(毫秒)后若函数仍未完成则抛出异常 | ==== 解释器上下文环境 ==== ^单例对象 ^描述 ^ |array **cmd_args** | 由 string 构成的运行参数 array | |[type] **channel** | 协程消息队列类型 | ^方法 ^描述 ^ |[expression] **build**([context], string) | 构建一个可用于计算的表达式 | |var **solve**([context], [expression]) | 计算一个表达式 | |[namespace] **import**([context], string folder_path, string name) | 从 folder_path 动态加载一个扩展,其规则与 import 语句相同,失败时返回null | |[namespace] **source_import**([context], string path) | 动态加载一个扩展,需指定详细路径和文件名,失败时返回null | |void **add_literal**([context], string literal, [function] func) | 注册字面量处理函数 | |void **link_var**([context], var lhs, var rhs) | 建立 lhs 到 rhs 的引用 | |void **unlink_var**([context], var val) | 拷贝引用所在内存区块并使其独立,并将其退化为变量 | |[coroutine] **create_co**([context], [function] func) | 从函数创建一个协程 | |[coroutine] **create_co_s**([context], [function] func, array args) | 从函数创建一个协程,并传入参数 | |void **destroy_co**([context], [coroutine]) | 手动销毁协程 | |var **await**([context], [function] func) | 异步等待函数执行完毕 | |var **await_s**([context], [function] func, array args) | 异步等待函数执行完毕,并传入参数 | |number **resume**([context], [coroutine]) | 切换至指定的协程,返回 -1 为异常,-2 为协程已退出 | |void **yield**([context]) | 切换回主协程 | **注意,await 系列函数一般在协程中使用,用于在等待执行时间较长函数的过程中自动的将上下文交由其他协程使用(也就是自动 yield)**\\ **因此,await 系列函数应使用原始的 CovScript API,而不是 CovScript 函数 ** === 协程消息队列类型 === ^方法 ^描述 ^ |void **consumer**([channel], [coroutine]) |将指定协程设置为消费者 | |void **push**([channel], var val) |发送数据至队列并唤醒消费者 | |var **pop**([channel]) |异步读取数据,会将当前协程设置为消费者,并当队列为空时 yield | |void **clear**([channel]) |清空队列 | |void **touch**([channel]) |手动唤醒消费者 | |number **size**([channel]) |获取队列大小 | |boolean **empty**([channel]) |返回队列是否为空 | ==== 3.5.1 时间类型命名空间(runtime.time_type) ==== ^方法 ^描述 ^ |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 **unixtime**([time_type]) |*转换为 Unix Time | ----- \\ ===== 3.6 数学(math) ===== ^命名空间 ^描述 ^ | ''constants'' |[[:manual:reference:package:standard:main_page#3.6.1 常量(math.constants)| 3.6.1常量命名空间]] | ^方法 ^描述 ^ |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) |获取区间内的伪随机整数 | ==== 3.6.1 常量(math.constants) ==== ^单例对象 ^描述 ^ |number **max** |数值类型浮点实现最大值 | |number **min** |数值类型浮点实现最小值 | |number **integer_max** |数值类型整数实现最大值 | |number **integer_min** |数值类型整数实现最小值 | |number **float_max** |数值类型浮点实现最大值 | |number **float_min** |数值类型浮点实现最小值 | |number **inf** |数值类型正无穷 | |number **nan** |数值类型无意义 | |number **pi** |圆周率 | |number **e** |自然底数 | ----- \\ ===== 3.7 字符(char) ===== ^**方法** ^**描述** ^ |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 码转换为字符 | ----- \\ ===== 3.8 数值(number) ===== ^**方法** ^**描述** ^ |boolean **is_integer**(number) |返回数值实现是否为整数 | |boolean **is_float**(number) |返回数值实现是否为浮点 | |integer **ntoi**(number) |将数值转换为整数实现 | |float **ntof**(number) |将数值转换为浮点实现 | ----- \\ ===== 3.9 字符串(string) ===== ^方法 ^描述 ^ |string **append**(string, var) |在尾部追加内容 | |void **assign**(string, number index,char ch) |在字符串 index 处给字符赋值 | |void **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) |将字符串转换为大写 | ----- \\ ===== 3.10 数组(array) ===== ^命名空间 ^描述 ^ |''iterator'' |[[:manual:reference:package:standard:main_page#3.10.1 数组迭代器(array.iterator)| 3.10.1数组迭代器命名空间]] | ^方法 ^描述 ^ |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) |删除最后一个元素并返回 | |var **sort**(array, [function] func) |使用 func 作为比较器对数组进行排序 | |list **to_list**(array) |将数组转换为链表 | |hash_map **to_hash_map**(array) |将数组转换为哈希映射,要求数组中元素必须都是映射 | |hash_set **to_hash_set**(array) |将数组转换为哈希集合 | ----- \\ ==== 3.10.1 数组迭代器(array.iterator) ==== ^方法 ^描述 ^ |[iterator] **next**([iterator]) |向前移动并返回迭代器 | |[iterator] **next_n**([iterator], step) |同 next,向前移动 step 个单位并返回 | |[iterator] **prev**([iterator]) |向后移动并返回迭代器 | |[iterator] **prev_n**([iterator], step) |同 prev,向后移动 step 个单位并返回 | |var **data**([iterator]) |*访问迭代器指向的元素 | ----- \\ ===== 3.11 线性表(list) ===== ^命名空间 ^描述 ^ |''iterator'' |[[:manual:reference:package:standard:main_page#3.11.1 线性表迭代器(list.iterator)| 3.11.1线性表迭代器命名空间]] | ^方法 ^描述 ^ |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) |删除连续的重复元素 | |void **sort**(list, [function] func) |使用 func 作为比较器对线性表进行排序 | ==== 3.11.1 线性表迭代器(list.iterator) ==== ^方法 ^描述 ^ |[iterator] **next**([iterator]) |向前移动迭代器 | |[iterator] **prev**([iterator]) |向后移动迭代器 | |var **data**([iterator]) |*访问迭代器指向的元素 | ===== 3.12 映射(pair) ===== ^方法 ^描述 ^ |var **first**(pair) |*获取第一个元素 | |var **second**(pair) |*获取第二个元素 | ----- \\ ===== 3.13 哈希映射(hash_map) ===== ^方法 ^描述 ^ |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) |查找是否存在映射 | ===== 3.14 哈希集合(hash_set) ===== ^方法 ^描述 ^ |boolean **empty**(hash_set) |检查容器是否为空 | |number **size**(hash_set) |*获取容纳的元素数 | |void **clear**(hash_set) |删除全部内容 | |void **insert**(hash_map, var, var) |插入一个元素 | |void **erase**(hash_set, var) |删除元素 | |boolean **exist**(hash_set, var) |查找是否存在元素 | |hash_set **merge**(hash_set, hash_set)|返回两个集合的并集(不能使用 this 作为参数) | |hash_set **subtract**(hash_set, hash_set)|返回两个集合的差集(不能使用 this 作为参数) | |hash_set **intersect**(hash_set, hash_set)|返回两个集合的交集(不能使用 this 作为参数) |