defs

语法

defs([X])

详情

查询系统中所有函数信息。

参数

X 可选参数,是一个是字符串,用于匹配函数名,支持通配符"%"和"?"。"%"表示0,1或多个字符,“?”表示1个字符。

返回值

返回一个表:

  • 如果没有指定 X,返回系统的所有函数信息。

  • 如果指定了 X,返回匹配 X 的所有函数信息。

返回的表包括以下列:

列名 含义
name 函数名
isCommand 是否为命令
userDefined 是否为用户自定义函数
isView 是否为函数视图
minParamCount 最小参数个数
maxParamCount 最大参数个数
syntax 函数语法

例子

defs();
name isCommand userDefined isView minParamCount maxParamCount syntax
!=_2 0 0 0 2 2 (X, Y)
!_1 0 0 0 1 1 (X)
$_2 0 0 0 2 2 (obj, type)
%_2 0 0 0 2 2 (X, Y)
&&_2 0 0 0 2 2 (X, Y)
&_2 0 0 0 2 2 (X, Y)
**_2 0 0 0 2 2 (X, Y)
*_2 0 0 0 2 2 (X, Y)
+_2 0 0 0 2 2 (X, Y)
-_1 0 0 0 1 1 (X)
...
typestr defs();
// output: IN-MEMORY TABLE;

select * from defs() where name like "bit%";

name

isCommand

userDefined

isView

minParamCount

maxParamCount

syntax

bitAnd 0 0 0 2 2 (X, Y)
bitNot 0 0 0 1 1 (X)
bitOr 0 0 0 2 2 (X, Y)
bitXor 0 0 0 2 2 (X, Y)
defs("bit%");

name

isCommand

userDefined

isView

minParamCount

maxParamCount

syntax

bitAnd 0 0 0 2 2 (X, Y)
bitNot 0 0 0 1 1 (X)
bitOr 0 0 0 2 2 (X, Y)
bitXor 0 0 0 2 2 (X, Y)
defs("%sin");

name

isCommand

userDefined

isView

minParamCount

maxParamCount

syntax

asin 0 0 0 1 1 (X)
sin 0 0 0 1 1 (X)
defs("?sin");

name

isCommand

userDefined

isView

minParamCount

maxParamCount

syntax

asin 0 0 0 1 1 (X)
// 定义 func1
def func1(){
    return 1
}

// 将函数 func1 定义为函数视图
// addFunctionView 只能由管理员或拥有 VIEW_OWNER 权限的普通用户执行
addFunctionView(func1)
select * from defs() where name = "func1"
name isCommand userDefined isView minParamCount maxParamCount syntax
func1 0 0 1 0 0 ()
func1 0 0 1 0 0 ()
注:
通过 addFunctionView 将自定义函数注册为函数视图后,defs() 会返回两条相同的函数视图记录。