q 中的多变量赋值

Multiple variable assignment in q

这段代码看起来像多变量赋值:

d:`a`b`c!1 2 3
d[`a`b]:10 20

为什么会这样?为什么它与 (a;b):10 20 不同(这不起作用)?

我想第二行只会进行临时赋值——实际上不会替换值。但它会。

它在顶级索引并分配新值,因此它与以下内容相同:

q)@[`d;`a`b;:;10 20]
`d

这也适用于根上下文中的全局变量

q)@[`.;`a`b;:;100 200]
`.
q)a
100
q)b
200