KDB-运行函数,其中函数名和参数作为字符串传入

KDB-运行函数,其中函数名和参数作为字符串传入,kdb,Kdb,我正在创建一个查询KDB会话并将各种数据位返回前端的进程。 前端向KDB会话传递一个参数,该参数是一个以字符串形式输入的表名,例如“table”,其中table是KDB会话中的一个表 我可以在参考的基础表上运行一些简单的KDB函数,例如: count `$"table" cols `$"table" 在其他情况下,前端向KDB会话传递一个字符串,该字符串指定一个函数和一个参数,当运行该函数和参数时,返回一个与上述表等价的表–例如“函数参数” 我想在运行函数参数 以下内容不返回分别相当于coun

我正在创建一个查询KDB会话并将各种数据位返回前端的进程。 前端向KDB会话传递一个参数,该参数是一个以字符串形式输入的表名,例如
“table”
,其中
table
是KDB会话中的一个表

我可以在参考的基础表上运行一些简单的KDB函数,例如:

count `$"table"
cols `$"table"
在其他情况下,前端向KDB会话传递一个字符串,该字符串指定一个函数和一个参数,当运行该函数和参数时,返回一个与上述
等价的表–例如
“函数参数”
我想在运行
函数参数

以下内容不返回分别相当于
count table
cols table
的输出:

count `$"function parameter"
cols `$"function parameter"
从字符串
“函数参数”


非常感谢

{simple function}eval eval parse“x”
应该对这两者都有效

count get["function parameter"]
cols get["function parameter"]

应该可以工作,并且不需要将参数从字符数组强制转换为符号。

在您的示例中,
cols
可以将表或表名作为符号作为参数,这就是它按预期返回列名的原因
count
无法将表的名称作为参数,因此将返回1,因为只有一个符号元素

已将“函数参数”
转换为符号
`function parameter
,并且没有具有此名称的表,因此将此作为参数传递给
cols
将抛出错误,而将此传递给
count
将返回1,原因与以前相同

您可能对使用带字符串参数的
value
函数感兴趣,这里有相关文档:

它将对字符串参数进行求值,就像在命令提示符中键入该参数一样。使用
value“table”
将返回
table
变量,
value“function parameter”
将使用参数运行函数,该参数也将成为一个表

然后可以使用
count value“function parameter”
count value“table”
将它们传递到简单函数中,以返回所需的输出

希望这是有用的


马克

谢谢-非常有帮助