tickerplant代码函数中的y变量是什么?

时间:2015-09-17 20:37:46

标签: kdb

有人可以在kdb + tick

中的u.q中解释此功能
del:{w[x]_:w[x;;0]?y};.z.pc:{del[;x]each t};

问题:
1.它做什么用? 2.来自哪里? 3.任何样本调用代码?

1 个答案:

答案 0 :(得分:4)

您需要结合tick.q查看此代码。请注意,u.q脚本中的函数和变量按行\d .u存储在.u名称空间中。

来自tick.q -

 globals used
 .u.w - dictionary of tables->(handle;syms)
 .u.i - msg count in log file
 .u.j - total msg count (log file plus those held in buffer)
 .u.t - table names
 .u.L - tp log filename, e.g. `:./sym2008.09.11
 .u.l - handle to tp log file
 .u.d - date

你提到了两个函数 - del和.z.pc。

连接关闭后调用

.z.pc。有关所提供参数的信息,请参阅链接。

在这种情况下,.z.pc被定义为在连接关闭时每个t用params [; x]调用del函数。从tick.q我们可以看到t(.u.t)是一个表名列表。从.z.pc定义我们知道x是该连接的句柄。

所以我们用[;连接句柄]每个表调用del。在del函数中,表将对应于x,连接句柄将为y(implicit paramaters)。

del函数内部的代码从表x的订阅列表(w - 或.u.w)中删除句柄(y)。

有很多关于tick.q在线提供的信息here。最后链接的FD指南特别透彻。