KDB-运行函数,其中函数名和参数作为字符串传入
我正在创建一个查询KDB会话并将各种数据位返回前端的进程。 前端向KDB会话传递一个参数,该参数是一个以字符串形式输入的表名,例如KDB-运行函数,其中函数名和参数作为字符串传入,kdb,Kdb,我正在创建一个查询KDB会话并将各种数据位返回前端的进程。 前端向KDB会话传递一个参数,该参数是一个以字符串形式输入的表名,例如“table”,其中table是KDB会话中的一个表 我可以在参考的基础表上运行一些简单的KDB函数,例如: count `$"table" cols `$"table" 在其他情况下,前端向KDB会话传递一个字符串,该字符串指定一个函数和一个参数,当运行该函数和参数时,返回一个与上述表等价的表–例如“函数参数” 我想在运行函数参数 以下内容不返回分别相当于coun
“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”
将它们传递到简单函数中,以返回所需的输出
希望这是有用的
马克谢谢-非常有帮助