首先,我展示我当前的命名空间,然后定义一个新的命名空间,然后我尝试创建一个字典。
为什么第一个赋值失败,而未定义的命名空间中的赋值是成功的?
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
答案 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