Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
KDB+;/Q如何在函数中创建名称空间_Kdb - Fatal编程技术网

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"