有人可以在kdb + tick
中的u.q中解释此功能del:{w[x]_:w[x;;0]?y};.z.pc:{del[;x]each t};
问题:
1.它做什么用?
2.来自哪里?
3.任何样本调用代码?
答案 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指南特别透彻。