0

在 q 3.6 32bit 中,我看到了一些我无法解释的东西。拥有相同的解析树,这两个表达式 fory1和 fory2给出了太不同的结果:

q)x:3
q)parse"y :: x*10"
::
`y
(*;`x;10)
q)parse"y:: x*10"
::
`y
(*;`x;10)
q)y1 :: x*10
q)y2:: x*10
q)x:5
q)y1
30
q)y2
50

为什么这里的空间如此有意义?

4

1 回答 1

2

我相信在 kdb 中定义视图的条件是变量和 :: 之间不应有空格

因此,在您的示例中,y2 是视图而 y1 不是,因此当您重新定义 x 时,y2 的值​​会在引用时更新,而 y1 不会

于 2020-12-07T10:15:58.827 回答