定义的命名空间中的字典分配失败

时间:2015-06-26 15:24:46

标签: kdb

首先,我展示我当前的命名空间,然后定义一个新的命名空间,然后我尝试创建一个字典。

为什么第一个赋值失败,而未定义的命名空间中的赋值是成功的?

q)key `
`q`Q`h`o
q).foo
'.foo
q).foo:()!()
q).foo.bar:`a`b`c!1 2 3
'.foo.bar
q).foobar.bar:`a`b`c!1 2 3
q).foobar.bar
a| 1
b| 2
c| 3

2 个答案:

答案 0 :(得分:2)

您需要像这样初始化命名空间:

q).foo:enlist[`]!enlist[::]
q).foo
| ::
q)
q).foo.bar:`a`b`c!1 2 3
q)
q).foo.bar
a| 1
b| 2
c| 3

在第二种情况下,q有效地为你做了

答案 1 :(得分:2)

来自code.kx:

  

上下文实际上是一个排序字典,其域是一个符号列表,其中包含在上下文中定义的实体的名称

如果您将代码更改为以下代码,它将按预期工作:

q).foo:(`symbol$())!()
q).foo.bar:`a`b`c!1 2 3
q).foo.bar
a| 1
b| 2
c| 3
相关问题