我试图了解q如何定义日期的点表示法。
案例1:时间变量问题
对于前。如果我按照约会来约会:
q) d:2014.06.14
q) d.dd
14 i
但如果我尝试这样做而没有任何时间变量:
q) (2014.06.14).dd
Error: .dd
问题:为什么需要变量来应用点表示法。
案例2:内幕功能:
带日期的点表示法在函数内部不起作用。
q) {x.mm}[2014.01.01]
Error: x.mm
解决方案就是施放
q){`mm$x}[2014.01.01]
1i
问题:为什么时间变量属性在函数内部不起作用?
我想了解点表示法的行为。
答案 0 :(得分:1)
点符号仅适用于具有"名称"在属于工作区树(以及qsql查询中的列)的意义上。从本质上讲,如果您无法成功说出get`a
,那么您也无法说a.dd
。
答案 1 :(得分:0)
所有有效问题都有一些模糊的答案:)
案例1:时间变量问题/问题:为什么需要变量来应用点表示法。
点符号不是一种可以像其他语言一样使用的构造。这是一个快速的方法来获取写入编译器的日期的整数组件(即我怀疑编译器可能只是在寻找[日期]。而且没有更复杂的。)
案例2:内部函数/问题:为什么时态变量属性在函数内部不起作用?:
点符号并不意味着在函数内部使用。很长一段时间以来一直如此,虽然我从来没有听到过关于原因的合理解释。
答案 2 :(得分:0)
我记得在code.kx上的某处阅读:
http://code.kx.com/q4m3/2_Basic_Data_Types_Atoms/#257-constituents-and-dot-notation
高级: q中的一个怪癖是用于访问时态的点符号 成分不适用于函数参数。
我认为访问日期或时间变量的成分在局部变量VS全局变量中有其自身的局限性。