Migrate reference pages to declaration-line storage and rebuild the 13-column index. Add qualified member lookup plus regression and end-to-end coverage.
709 lines
19 KiB
Markdown
709 lines
19 KiB
Markdown
# 运行时 / 通用
|
|
|
|
## `call(func_name, p1, pn)`
|
|
|
|
声明:function
|
|
|
|
根据名称或者函数指针调用指定的函数,后面带的参数将自动送入该函数。
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ----------- | ------ | ------------- |
|
|
| `func_name` | string | TFunction |
|
|
| `p1` | any | 整数,参数1 |
|
|
| `pn` | any | 整数,参数N。 |
|
|
|
|
返回:any
|
|
|
|
## `checkGlobalCacheExpired(value)`
|
|
|
|
声明:function
|
|
|
|
判断全局缓存引用是否已经过期。
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ------- | ---- | ------------------------------------ |
|
|
| `value` | any | `getGlobalCache(...)` 取出的缓存引用 |
|
|
|
|
返回:bool
|
|
|
|
## `dbglocalcancel(id, return_value)`
|
|
|
|
声明:function
|
|
|
|
注销任务。该功能可以用来终止运行的WEB任务。 其任务ID为dbglocalrunning中返回信息中的id字段以十六进制模式转换为64位整数。
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| -------------- | ---- | ----------------------------------------------------------------- |
|
|
| `id` | int | 为dbglocalrunning中返回信息中的id字段以十六进制模式转换为64位整数 |
|
|
| `return_value` | bool | object |
|
|
|
|
返回:bool
|
|
|
|
## `divMod(dividend, divisor, remainder)`
|
|
|
|
声明:function
|
|
|
|
计算整数除法的整数商和余数。也就是用参数Dividend除以参数Divisor,得到的整数商存到参数Result中,把余数存到参数Remainder中
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ----------- | ---- | ------------ |
|
|
| `dividend` | int | 整数,被除数 |
|
|
| `divisor` | int | 整数,除数 |
|
|
| `remainder` | int | 整数,余数 |
|
|
|
|
返回:float
|
|
|
|
## `eastrq(b, c, q)`
|
|
|
|
声明:function
|
|
|
|
Eastrq 相关函数。
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ---- | ----- | ---------------- |
|
|
| `b` | array | 一维数字数组类型 |
|
|
| `c` | array | 一维数字数组类型 |
|
|
| `q` | array | 二维数字数组类型 |
|
|
|
|
返回:int
|
|
|
|
## `ensureRange(amin, amax)`
|
|
|
|
声明:function
|
|
|
|
这个函数可以保证返回某个区间之内的数,参数Amin和参数Amax是这个区间的上限和下限。 如果参数Avalue大于等于参数Amin并且小于等于参数Amax,则返回Avalue 如果参数Avalue大于参数Amax,则返回Amax的值 如果参数Avalue小于参数Amin,则返回Amin的值
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ------ | ----- | ---- |
|
|
| `amin` | float | 实数 |
|
|
| `amax` | float | 实数 |
|
|
|
|
返回:float
|
|
|
|
## `exportJsonStringMbcs(data, n, return_value)`
|
|
|
|
声明:function
|
|
|
|
将TSL结构数据转换为json串。和ExportJSONString不同的是,该函数不会对中文进行转码处理,保留中文原码。
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| -------------- | ------- | ----------------------------------------------------------------------------- |
|
|
| `data` | AnyType | 天软数据,任意数据类型。 |
|
|
| `n` | int | 可选参数,要保留的小数位数。为0时保留1位小数,大于16或小于0时保留全部小数位数 |
|
|
| `return_value` | string | 字符串,json串 |
|
|
|
|
返回:string
|
|
|
|
## `frameconcat(arrdic, _type)`
|
|
|
|
声明:function
|
|
|
|
数据表-拼接
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| -------- | --------- | --------------------------------------------------------------- |
|
|
| `arrdic` | array | Array of number,数组的数组,需要拼接的数组集合 |
|
|
| `_type` | Usrdefine | Usrdefine,数组拼接方式,默认为0行并=0;列并=1;非完全矩阵列并=2 |
|
|
|
|
返回:array
|
|
|
|
### 示例
|
|
|
|
```tsl
|
|
a := ones(3,3);
|
|
b := ones(2,3);
|
|
frameconcat(array(a,b));
|
|
```
|
|
|
|
## `getEigenValue(a, eigen_value)`
|
|
|
|
声明:function
|
|
|
|
通过赋值得到EigenValue
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ------------- | ----- | ---------------- |
|
|
| `a` | array | 二维数字数组类型 |
|
|
| `eigen_value` | array | 一维数字数组类型 |
|
|
|
|
返回:any
|
|
|
|
## `H_J_Method_Pgm(call_back)`
|
|
|
|
声明:function
|
|
|
|
H_J算法测试
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ----------- | ------ | ---------------------------- |
|
|
| `call_back` | string | 字符串类型,计算目标值的回调 |
|
|
|
|
返回:array
|
|
|
|
## `inRange(amin, amax)`
|
|
|
|
声明:function
|
|
|
|
判断Avalue是否在\[Amin, Amax\]范围内
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ------ | ----- | ---- |
|
|
| `amin` | float | 实数 |
|
|
| `amax` | float | 实数 |
|
|
|
|
返回:bool
|
|
|
|
## `interestRate(nperiods, payment, present_value, future_value, payment_time)`
|
|
|
|
声明:function
|
|
|
|
返回要求收益率,使得这项投资从现值PresentValue实现终值FutureValue,在共NPeriods个周期后实现。如果周期定义为一年,那么结果就是要求的年收益率。
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| --------------- | ----- | ---------------------------------------- |
|
|
| `nperiods` | int | 整数,表示还款的总期数 |
|
|
| `payment` | float | 实数,表示投资期内,每期投入值,一般为负 |
|
|
| `present_value` | float | 实数,表示贷款总额 |
|
|
| `future_value` | int | 实数,表示投资的未来值 |
|
|
| `payment_time` | int | PaymentTime决定现金流是在期初或期末发生 |
|
|
|
|
返回:float
|
|
|
|
## `invoke(obj, member_name, member_value, p1, pn)`
|
|
|
|
声明:function
|
|
|
|
调用类的成员方法或对类的成员变量进行赋值操作。支持对重载方法的调用。
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| -------------- | --------- | ------------------------------------------------------- |
|
|
| `obj` | TSLObject | TSLObject,实例对象 |
|
|
| `member_name` | string | 字符串(小写),成员(方法或属性)的名称 |
|
|
| `member_value` | bool | object |
|
|
| `p1` | any | 任意值,成员属性时需要赋的值或成员方法时的第一个参数;… |
|
|
| `pn` | any | 任意值,成员方法的第n个参数 |
|
|
|
|
返回:any
|
|
|
|
## 未细分函数
|
|
|
|
## `logined()`
|
|
|
|
声明:function
|
|
|
|
判定是否已经登录成功。只读属性。
|
|
|
|
返回:any
|
|
|
|
## `milliSecondSpan()`
|
|
|
|
声明:function
|
|
|
|
范围生成函数相关函数。
|
|
|
|
返回:float
|
|
|
|
## `mswap(value, dim1, dim2)`
|
|
|
|
声明:function
|
|
|
|
交换多维 FMArray 的两个维度。
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ------- | ----- | -------------- |
|
|
| `value` | array | 输入 FMArray |
|
|
| `dim1` | any | 第一个维度下标 |
|
|
| `dim2` | any | 第二个维度下标 |
|
|
|
|
返回:array
|
|
|
|
## 数学函数 / 矩阵运算及分解
|
|
|
|
## `nils(length)`
|
|
|
|
声明:function
|
|
|
|
生成元素为 `nil` 的一维结果。
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| -------- | ---- | -------- |
|
|
| `length` | any | 一维长度 |
|
|
|
|
返回:array
|
|
|
|
## `noTechCacheDo()`
|
|
|
|
声明:function
|
|
|
|
和TechCacheDo相反的是,在NoTechCacheDo语句段中调用的所有相关计算,将均取消缓存。
|
|
|
|
返回:any
|
|
|
|
## `ones(length)`
|
|
|
|
声明:function
|
|
|
|
生成元素为 `1` 的一维结果。
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| -------- | ---- | -------- |
|
|
| `length` | any | 一维长度 |
|
|
|
|
返回:array
|
|
|
|
## `outPutGrowRatio(v1, v2)`
|
|
|
|
声明:function
|
|
|
|
增长率(%)
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ---- | ----- | ------------ |
|
|
| `v1` | float | 实型,期末值 |
|
|
| `v2` | float | 实型,期初值 |
|
|
|
|
返回:float
|
|
|
|
### 示例
|
|
|
|
```tsl
|
|
//返回13到14的增长率(%)
|
|
outPutGrowRatio(14,13);
|
|
//结果:7.69
|
|
```
|
|
|
|
## `outPutGrowRatio2(v1, v2)`
|
|
|
|
声明:function
|
|
|
|
增长率(%)
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ---- | ----- | ------------ |
|
|
| `v1` | float | 实型,期末值 |
|
|
| `v2` | float | 实型,期初值 |
|
|
|
|
返回:float
|
|
|
|
### 示例
|
|
|
|
```tsl
|
|
//返回13到14的增长率(%)
|
|
outPutGrowRatio2(14,13);
|
|
//结果:7.69
|
|
```
|
|
|
|
## `outPutGrowValue2(v1, v2)`
|
|
|
|
声明:function
|
|
|
|
增长
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ---- | ----- | ------------ |
|
|
| `v1` | float | 实型,期末值 |
|
|
| `v2` | float | 实型,期初值 |
|
|
|
|
返回:float
|
|
|
|
### 示例
|
|
|
|
```tsl
|
|
//返回13与14差值
|
|
outPutGrowValue2(13,14);
|
|
//结果:-1
|
|
```
|
|
|
|
## `raiseError(func_name, err_str)`
|
|
|
|
声明:function
|
|
|
|
显示调试出错信息
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ----------- | ------ | -------------------------- |
|
|
| `func_name` | string | 字符串类型,出错的函数名称 |
|
|
| `err_str` | string | 字符串类型,出错提示 |
|
|
|
|
返回:Error
|
|
|
|
## `reIndexCopy(data, index_info1, index_info1_2, index_info_n)`
|
|
|
|
声明:function
|
|
|
|
ReIndexCopy和Reindex的差异:ReIndex修改原有的结果集,而ReIndexCopy不修改原结果集返回一个新结果集。
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| --------------- | ----- | -------------------- |
|
|
| `data` | array | 数组,需重构的数组; |
|
|
| `index_info1` | array | Array |
|
|
| `index_info1_2` | array | Array |
|
|
| `index_info_n` | any | Array |
|
|
|
|
返回:array
|
|
|
|
## 未细分函数
|
|
|
|
### 示例
|
|
|
|
```tsl
|
|
实现:将指定列下标转为数组的行下标--可用于快速建立哈希表
|
|
setsysparam(pn_stock(),"SH000001");
|
|
setsysparam(pn_date(),20240822T);
|
|
t:=nday(10,'time',datetostr(sp_time()),'close',close());
|
|
return reindexcopy(t,t[:,"time"]);
|
|
```
|
|
|
|
## `reportSeriesSplit(table_name)`
|
|
|
|
声明:function
|
|
|
|
报告期数据处理。注意,该函数主要用于客户端结果处理,不提供给用户程序编辑。
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ------------ | ------ | -------------------- |
|
|
| `table_name` | string | 字符串,用户数据名称 |
|
|
|
|
返回:any
|
|
|
|
## `rotatedComponentMatrix(cm, eigen_value, eigen_vector)`
|
|
|
|
声明:function
|
|
|
|
该函数已废弃
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| -------------- | ----- | -------------------------- |
|
|
| `cm` | array | 二维数字数组,相关系数矩阵 |
|
|
| `eigen_value` | array | 一维数字数组,特征根 |
|
|
| `eigen_vector` | array | 二维数字数组,特征向量 |
|
|
|
|
返回:array
|
|
|
|
### 示例
|
|
|
|
```tsl
|
|
//设置样本矩阵
|
|
zt:=array((0.7592,1.7593,21.9279,48.5626,55.1679),
|
|
(0.0490,0.4457,2.2255,82.2658,192.4348),
|
|
(-2.2313,-1.3096,-59.8883,3.9922,-80.2419),
|
|
(0.1364,0.539,4.3910,55.1438,46.0612),
|
|
(0.7233,1.9467,15.6127,111.3018,58.3969));
|
|
z_t_s:=Standarize_II(z_t); //标准化
|
|
mt_Transposition(z_t_s,z); //转置
|
|
r:=correlationMatrix(z); //相关系数矩阵
|
|
Eigen_Jacobi(r,eigen_value,eigen_vector); //特征值&特征向量
|
|
cm:=componentMatrix(eigen_value,eigen_vector,max_eigen_value); //载荷矩阵
|
|
rotatedComponentMatrix(cm);
|
|
//结果:
|
|
```
|
|
|
|
## `sendRunningData(data, nwdow)`
|
|
|
|
声明:function
|
|
|
|
直接函数相关函数。
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ------- | ------ | -------------------------------- |
|
|
| `data` | any | 要发送到运行结果窗口的数据 |
|
|
| `nwdow` | string | 结果窗口名称;省略时在原窗口输出 |
|
|
|
|
返回:any
|
|
|
|
## 错误处理
|
|
|
|
## `setUid(uid)`
|
|
|
|
声明:function
|
|
|
|
设置当前的用户为指定的用户,需要有特殊权限,如果成功则返回真。
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ----- | ------ | ---------------- |
|
|
| `uid` | string | 字符串,用户名。 |
|
|
|
|
返回:bool
|
|
|
|
## `techCacheDo()`
|
|
|
|
声明:function
|
|
|
|
TechCacheDo打开技术类缓存 相关函数。
|
|
|
|
返回:any
|
|
|
|
## `user(name)`
|
|
|
|
声明:function
|
|
|
|
执行指定用户的函数,只有当你已经得到该用户的授权才可以 例如:如果已经被用户user1授权,且user1拥有函数sample,那么我们可以用user('user1').sample来执行user1的sample函数。
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ------ | ------ | ---------------- |
|
|
| `name` | string | 字符串,用户名。 |
|
|
|
|
返回:any
|
|
|
|
## `Logger_debug(msg)`
|
|
|
|
声明:function
|
|
|
|
打印带执行节点的调试信息
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ----- | ------ | ----------------------------------------------------------- |
|
|
| `msg` | string | 任意数据类型,如果是字符串原样打印,如果非字符串按tostn打印 |
|
|
|
|
返回:any
|
|
|
|
## `logger_info(msg)`
|
|
|
|
声明:function
|
|
|
|
打印带执行节点的提示信息
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ----- | ------ | ----------------------------------------------------------- |
|
|
| `msg` | string | 任意数据类型,如果是字符串原样打印,如果非字符串按tostn打印 |
|
|
|
|
返回:any
|
|
|
|
## `logger_warning(msg)`
|
|
|
|
声明:function
|
|
|
|
打印带执行节点的调试信息
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ----- | ---- | ----------------------------------------------------------- |
|
|
| `msg` | any | 任意数据类型,如果是字符串原样打印,如果非字符串按tostn打印 |
|
|
|
|
返回:any
|
|
|
|
## `logger_info2(p1, p2, p3, pn)`
|
|
|
|
声明:function
|
|
|
|
打印带执行节点的提示信息
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ---- | ---- | ------------------------ |
|
|
| `p1` | any | 第一个参数的内容 |
|
|
| `p2` | any | 第二个参数的内容,可省略 |
|
|
| `p3` | any | 第三个参数的内容,可省略 |
|
|
| `pn` | any | 第N个参数的内容,可省略 |
|
|
|
|
返回:any
|
|
|
|
## `sp_UserSysParam2()`
|
|
|
|
声明:function
|
|
|
|
用户自定义函数教学范例,获得当前系统参数
|
|
|
|
返回:string
|
|
|
|
## `ifThen3(left, right, r1, r2, r3)`
|
|
|
|
声明:function
|
|
|
|
比较left与Right大小,若Left大,则返回r1;若相等,返回r2;若Right大,返回r3。
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ------- | ---- | ------ |
|
|
| `left` | real | 实数 |
|
|
| `right` | real | 实数 |
|
|
| `r1` | expr | 表达式 |
|
|
| `r2` | expr | 表达式 |
|
|
| `r3` | expr | 表达式 |
|
|
|
|
返回:expr
|
|
|
|
### 示例
|
|
|
|
```tsl
|
|
return ifThen3(1, 2, '左大', '相等', '右大');
|
|
// 返回:’右大’
|
|
```
|
|
|
|
## `safeEval(exp)`
|
|
|
|
声明:function
|
|
|
|
表达式求值
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ----- | ----------- | ---------- |
|
|
| `exp` | texpression | 表达式类型 |
|
|
|
|
返回:any
|
|
|
|
## `exportCsvne(data, csv_str, include_index, include_header)`
|
|
|
|
声明:function
|
|
|
|
将指定数组Data转换为csv格式字符串并存储在csvStr参数中。仅支持一维及二维数组的转换。和ExportCsv的区别:在处理浮点数据时,ExportCsvne的结果不会输出为1E15等格式。
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ---------------- | ------ | ---- |
|
|
| `data` | array | |
|
|
| `csv_str` | string | |
|
|
| `include_index` | | |
|
|
| `include_header` | bool | |
|
|
|
|
返回:bool
|
|
|
|
### 示例
|
|
|
|
范例01:一维数组转换成csv格式字符串(含大数量级数据)
|
|
|
|
```tsl
|
|
data := array(1, 2, "3", "A", 9, 1E15);
|
|
ret := exportCsvne(data, s);
|
|
if ret then return s;
|
|
else return ret;
|
|
// 输出:
|
|
// 示例未提供可直接输出的返回表达式。
|
|
```
|
|
|
|
范例02:二维数组转换成csv格式字符串
|
|
|
|
```tsl
|
|
data := array((2, 5, 0), (3, 2, 1), (4, 7, 2));
|
|
ret := exportCsvne(data, s);
|
|
if ret then return s;
|
|
else return ret;
|
|
// 输出:
|
|
// 示例未提供可直接输出的返回表达式。
|
|
```
|
|
|
|
范例03:转换成csv格式字符串,结果包含数组下标信息
|
|
|
|
```tsl
|
|
data := array("A": (2, 5, 0), "B": (3, 2, 1), "C": (4, 7, 2));
|
|
ret := exportCsvne(data, s, 1);
|
|
if ret then return s;
|
|
else return ret;
|
|
// 输出:
|
|
// 示例未提供可直接输出的返回表达式。
|
|
```
|
|
|
|
范例04:转换成csv格式字符串,结果不包含字段头部信息
|
|
|
|
```tsl
|
|
data := array((2, 5, 0), (3, 2, 1), (4, 7, 2));
|
|
ret := exportCsvne(data, s, 0, 0);
|
|
if ret then return s;
|
|
else return ret;
|
|
// 输出:
|
|
// 示例未提供可直接输出的返回表达式。
|
|
```
|
|
|
|
## `doubleVariableExecute(arr, sys_name, time_arr, exp)`
|
|
|
|
声明:function
|
|
|
|
计算指定系统参数,指定时间序列下的指标表达式的值
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ---------- | ----------- | ---------------------------- |
|
|
| `arr` | integer | 二维数组,设置的系统参数的值 |
|
|
| `sys_name` | integer | 字符串,指定的系统参数名 |
|
|
| `time_arr` | integer | 二维数组,需要计算的指定时间 |
|
|
| `exp` | texpression | 表达式,指标表达式 |
|
|
|
|
返回:array
|
|
|
|
### 示例
|
|
|
|
```tsl
|
|
stocks := array(getBk('上证50'));
|
|
timer := marketTradeDayQk(20220101T, 20221211T);
|
|
return doubleVariableExecute(stocks, pn_Stock(), timer, @close());
|
|
// 返回: (部分结果截图)
|
|
```
|
|
|
|
## `multipleExecute(exp)`
|
|
|
|
声明:function
|
|
|
|
表达式求值
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ----- | ----------- | ------ |
|
|
| `exp` | texpression | 表达式 |
|
|
|
|
返回:array
|
|
|
|
## `singleVariableExecute(arr, sys_name, exp)`
|
|
|
|
声明:function
|
|
|
|
设置系统变量SysName的值为Arr中的元素,执行表达式exp,将表达式的值放到数组Arr中。
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ---------- | ----------- | ------------------------ |
|
|
| `arr` | array | 数组, |
|
|
| `sys_name` | string | 字符串,指定系统参数名称 |
|
|
| `exp` | texpression | 表达式 |
|
|
|
|
返回:array
|
|
|
|
### 示例
|
|
|
|
```tsl
|
|
// Arr中存储的是代码,获取2019年3月1日,Arr中所有代码的收盘价
|
|
arr := array('SZ000001', 'SZ000002');
|
|
return singleVariableExecute(arr, pn_stock(), @close());
|
|
```
|
|
|
|
## `safeSetSysParam(systype, value)`
|
|
|
|
声明:function
|
|
|
|
设置系统参数。主要是将value的值转化为正确的对应于systype数据类型,再通过setsysparam进行设置setysparam(systype,value),保证系统参数设置成功。
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| --------- | ------ | ------------------------ |
|
|
| `systype` | string | 字符串,系统参数名称 |
|
|
| `value` | real | 实数或字符串,系统参数值 |
|
|
|
|
返回:integer
|
|
|
|
## `assert(error)`
|
|
|
|
声明:function
|
|
|
|
断言。若Check为假,返回出错信息
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ------- | ------ | ---------- |
|
|
| `error` | string | 字符串类型 |
|
|
|
|
返回:string
|
|
|
|
### 示例
|
|
|
|
```tsl
|
|
return assert(0, '无效的语段');
|
|
// 输出:
|
|
// 示例包含说明文字,未作为可执行片段运行。
|
|
```
|
|
|
|
## `sp_SetSysParam1()`
|
|
|
|
声明:function
|
|
|
|
设置系统参数教学范例,使用缺省系统参数,返回股票.基本信息
|
|
|
|
返回:any
|
|
|
|
## `sp_SetSysParam2()`
|
|
|
|
声明:function
|
|
|
|
设置系统参数教学范例,指定系统参数(当前为SH600718),返回股票.基本信息
|
|
|
|
返回:any
|