KDB+;/Q如何在函数中创建名称空间
我试图构建一个函数,该函数接受名称空间、键列表和值列表。但是,函数无法读取命名空间的键和值 例如:KDB+;/Q如何在函数中创建名称空间,kdb,Kdb,我试图构建一个函数,该函数接受名称空间、键列表和值列表。但是,函数无法读取命名空间的键和值 例如: q) makens:{[ns,keylist,valuelist] temp_ns: x.keylist.valuelist; set[.ns;temp_ns]} q) makens:[`hello;`age`gender;`10 "M"] 我希望我的输出是: q) .hello | :: age | `10 gender | "M&
q) makens:{[ns,keylist,valuelist] temp_ns: x.keylist.valuelist; set[.ns;temp_ns]}
q) makens:[`hello;`age`gender;`10 "M"]
我希望我的输出是:
q) .hello
| ::
age | `10
gender | "M"
相反,名称空间不起作用,当我在末尾使用set时,它不会读取.ns
作为输入,即:
q) makens:[`hello;`age`gender;`10 "M"]
q) .hello
'.hello
[3] .hello
^
q) .ns
`10`M
您可以使用:
q)makens:{[ns;keylist;valuelist](` sv `,ns) upsert ((`,keylist)!(::),valuelist)};
q)makens[`hello;`age`gender;`10,"M"]
`.hello
q).hello
| ::
age | `10
gender| "M"
您可以使用:
q)makens:{[ns;keylist;valuelist](` sv `,ns) upsert ((`,keylist)!(::),valuelist)};
q)makens[`hello;`age`gender;`10,"M"]
`.hello
q).hello
| ::
age | `10
gender| "M"