差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
manual:reference:package:standard:main_page [2023/03/23 16:01] mikecovleemanual:reference:package:standard:main_page [2023/07/17 16:25] (当前版本) – [解释器上下文环境] mikecovlee
行 261: 行 261:
 ^单例对象  ^描述  ^ ^单例对象  ^描述  ^
 |array **cmd_args** | 由 string 构成的运行参数 array | |array **cmd_args** | 由 string 构成的运行参数 array |
-|[type] **channel** | 协程消息队列 |+|[type] **channel** | 协程消息队列类型 |
  
 ^方法  ^描述  ^ ^方法  ^描述  ^
-|[expression] **build**([context], string)  |构建一个可用于计算的表达式 | +|[expression] **build**([context], string)  | 构建一个可用于计算的表达式 | 
-|var **solve**([context], [expression])  |计算一个表达式 | +|var **solve**([context], [expression])  | 计算一个表达式 | 
-|[namespace] **import**([context], string folder_path, string name)  |从 folder_path 动态加载一个扩展,其规则与 import 语句相同,失败时返回null | +|[namespace] **import**([context], string folder_path, string name)  | 从 folder_path 动态加载一个扩展,其规则与 import 语句相同,失败时返回null | 
-|[namespace] **source_import**([context], string path)  |动态加载一个扩展,需指定详细路径和文件名,失败时返回null | +|[namespace] **source_import**([context], string path)  | 动态加载一个扩展,需指定详细路径和文件名,失败时返回null | 
-|void **add_literal**([context], string literal, [function] func)  |注册字面量处理函数 | +|void **add_literal**([context], string literal, [function] func)  | 注册字面量处理函数 | 
-|void **link_var**(var lhs, var rhs) |建立 lhs 到 rhs 的引用 | +|void **link_var**([context], var lhs, var rhs) | 建立 lhs 到 rhs 的引用 | 
-|void **unlink_var**(var val) |拷贝引用所在内存区块并使其独立,并将其退化为变量 |+|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) ==== ==== 3.5.1 时间类型命名空间(runtime.time_type) ====
行 316: 行 337:
  
 ^单例对象  ^描述  ^ ^单例对象  ^描述  ^
-|number **max**  |数值类型最大值 | +|number **max**  |数值类型浮点实现最大值 | 
-|number **min**  |数值类型最小值 |+|number **min**  |数值类型浮点实现最小值 | 
 +|number **integer_max**  |数值类型整数实现最大值 | 
 +|number **integer_min**  |数值类型整数实现最小值 | 
 +|number **float_max**  |数值类型浮点实现最大值 | 
 +|number **float_min**  |数值类型浮点实现最小值 |
 |number **inf**  |数值类型正无穷 | |number **inf**  |数值类型正无穷 |
 |number **nan**  |数值类型无意义 | |number **nan**  |数值类型无意义 |
行 347: 行 372:
 \\ \\
  
-===== 3.8 字符串(string) =====+===== 3.8 数值(number) ===== 
 + 
 +^**方法**  ^**描述** 
 +|boolean **is_integer**(number)  |返回数值实现是否为整数 | 
 +|boolean **is_float**(number)  |返回数值实现是否为浮点 | 
 +|integer **ntoi**(number)  |将数值转换为整数实现 | 
 +|float **ntof**(number)  |将数值转换为浮点实现 | 
 + 
 +----- 
 +\\ 
 + 
 +===== 3.9 字符串(string) =====
  
 ^方法  ^描述  ^ ^方法  ^描述  ^
行 369: 行 405:
 \\ \\
  
-===== 3.数组(array) =====+===== 3.10 数组(array) =====
  
 ^命名空间  ^描述  ^ ^命名空间  ^描述  ^
-|''iterator''  |[[:manual:reference:package:standard:main_page#3.9.1 数组迭代器(array.iterator)| 3.9.1数组迭代器命名空间]]  |+|''iterator''  |[[:manual:reference:package:standard:main_page#3.10.1 数组迭代器(array.iterator)| 3.10.1数组迭代器命名空间]]  |
  
 ^方法  ^描述  ^ ^方法  ^描述  ^
行 389: 行 425:
 |void **push_back**(array, var)  |将元素添加到容器末尾  | |void **push_back**(array, var)  |将元素添加到容器末尾  |
 |var **pop_back**(array)  |删除最后一个元素并返回  | |var **pop_back**(array)  |删除最后一个元素并返回  |
 +|var **sort**(array, [function] func)  |使用 func 作为比较器对数组进行排序  |
 |list **to_list**(array)  |将数组转换为链表  | |list **to_list**(array)  |将数组转换为链表  |
 |hash_map **to_hash_map**(array)  |将数组转换为哈希映射,要求数组中元素必须都是映射  | |hash_map **to_hash_map**(array)  |将数组转换为哈希映射,要求数组中元素必须都是映射  |
行 396: 行 433:
 \\ \\
  
-==== 3.9.1 数组迭代器(array.iterator) ====+==== 3.10.1 数组迭代器(array.iterator) ====
  
 ^方法  ^描述  ^ ^方法  ^描述  ^
行 408: 行 445:
 \\ \\
  
-===== 3.10 线性表(list) =====+===== 3.11 线性表(list) =====
  
 ^命名空间  ^描述  ^ ^命名空间  ^描述  ^
-|''iterator''  |[[:manual:reference:package:standard:main_page#3.10.1 线性表迭代器(list.iterator)| 3.10.1线性表迭代器命名空间]]  |+|''iterator''  |[[:manual:reference:package:standard:main_page#3.11.1 线性表迭代器(list.iterator)| 3.11.1线性表迭代器命名空间]]  |
  
 ^方法  ^描述  ^ ^方法  ^描述  ^
行 430: 行 467:
 |void **reverse**(list)  |将该线性表的所有元素的顺序反转  | |void **reverse**(list)  |将该线性表的所有元素的顺序反转  |
 |void **unique**(list)  |删除连续的重复元素  | |void **unique**(list)  |删除连续的重复元素  |
 +|void **sort**(list, [function] func)  |使用 func 作为比较器对线性表进行排序  |
  
-==== 3.10.1 线性表迭代器(list.iterator) ====+==== 3.11.1 线性表迭代器(list.iterator) ====
  
 ^方法  ^描述  ^ ^方法  ^描述  ^
行 438: 行 476:
 |var **data**([iterator])  |*访问迭代器指向的元素  | |var **data**([iterator])  |*访问迭代器指向的元素  |
  
-===== 3.11 映射(pair) =====+===== 3.12 映射(pair) =====
  
 ^方法  ^描述  ^ ^方法  ^描述  ^
行 447: 行 485:
 \\ \\
  
-===== 3.12 哈希映射(hash_map) =====+===== 3.13 哈希映射(hash_map) =====
  
 ^方法  ^描述  ^ ^方法  ^描述  ^
行 458: 行 496:
 |boolean **exist**(hash_map, var)  |查找是否存在映射  | |boolean **exist**(hash_map, var)  |查找是否存在映射  |
  
-===== 3.13 哈希集合(hash_set) =====+===== 3.14 哈希集合(hash_set) =====
  
 ^方法  ^描述  ^ ^方法  ^描述  ^