完全限定的上下文名称(两个点)
Fully qualified context name (two dots)
当用两个点引用全局上下文变量 a
时,它们是什么意思(例如在 https://code.kx.com/q/ref/key/ 中):
q)a:1
q)get `..a
1
为什么这个地址正好指向根命名空间变量a
?
更新:
感谢@terrylynch 的回答,终于搞定了!根命名空间的名称是
`.
因为命名空间 .foo
的名称是:
`.foo
所以只需添加 .a
就可以得到
`..a
`.foo.a
作为结果。
这个页面解释得更好:https://code.kx.com/q4m3/12_Workspace_Organization/#121-namespaces
通用字典(非统一值)和命名空间(本质上是通用字典)可以使用点符号来访问其值
q)d:``a`b!(::;1;2)
q)d
| ::
a| 1
b| 2
q)d.a
1
q)\d .foo
q.foo)a:11
q.foo)\d .
q)
q).foo.a
11
访问此类值的另一种方法是
q)`.foo[`a]
11
q)get`.foo.a
11
但由于 `.
是根命名空间,因此
q)a:100
q)`.[`a]
100
q)get`..a
100
当用两个点引用全局上下文变量 a
时,它们是什么意思(例如在 https://code.kx.com/q/ref/key/ 中):
q)a:1
q)get `..a
1
为什么这个地址正好指向根命名空间变量a
?
更新:
感谢@terrylynch 的回答
`.
因为命名空间 .foo
的名称是:
`.foo
所以只需添加 .a
就可以得到
`..a
`.foo.a
作为结果。
这个页面解释得更好:https://code.kx.com/q4m3/12_Workspace_Organization/#121-namespaces
通用字典(非统一值)和命名空间(本质上是通用字典)可以使用点符号来访问其值
q)d:``a`b!(::;1;2)
q)d
| ::
a| 1
b| 2
q)d.a
1
q)\d .foo
q.foo)a:11
q.foo)\d .
q)
q).foo.a
11
访问此类值的另一种方法是
q)`.foo[`a]
11
q)get`.foo.a
11
但由于 `.
是根命名空间,因此
q)a:100
q)`.[`a]
100
q)get`..a
100