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
这段代码看起来像多变量赋值:
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