kdb+: 使用字符串作为变量名

kdb+: use string as variable name

如何使用字符串作为变量名?

我希望在运行时构造我的变量名,但如何将它用作左参数并为其赋值?

示例:

[`$"test"] : 1              / 'assign error

您可以使用 "set" 但它会创建一个全局的:

q){(`$"test") set 1;test}[]
1
q)test
1

或(如评论中user2393012所述):

@[`.;`test;:;1]

如果你想避免使用全局变量,你可以使用某种 namespace/dictionary/mapping:

q){d:()!();d[`$"test"]:1;d`test}[]
1