刚开始使用KDB +时,有一些问题难以从Q for Mortals中获得。
说,在这里 http://code.kx.com/wiki/JB:QforMortals2/casting_and_enumerations
Cast的左操作数也是原子的。
5 6 7h$42
结果:
42h
42
42j
我无法得到我们在这里所做的事情:看起来我们投了5 6 7到42,但是什么是42?它代表一种类型吗?
答案 0 :(得分:5)
在这种情况下,您实际上将数字42转换为三种类型,5h / short,6h / int和7h / long,创建异构列表,键入0h。
有关类型的更多信息,请访问: http://code.kx.com/q/ref/datatypes/
以下示例应该更清楚。
q)5 6 7h$42
42h
42i
42
q)`short`int`long$42
42h
42i
42
q)(5 6 7h$42) ~ (`short`int`long$42)
1b
答案 1 :(得分:1)
要了解它,我们可以将其转换为备用版本。这将使其更易于理解。
版本1:使用左 - 左
(5 6 7h) $\: 42
输出:
42h
42i
42
每个左(\:
)表示,对于左侧列表的每个值,调用右侧的转换操作。
版本2:使用每个(简单循环)
{x $ 42} each 5 6 7h
它只是循环遍历列表并在每次迭代时调用lambda函数。
答案 2 :(得分:0)
还有一种使用转换运算符(Bytes
)的方式;将字符串转换为其他数据类型。使用此格式的最常见示例是在将数据从CSV加载到kdb会话时。
$
或
q)"HIJ"$\:string 42
(42h;42;42j)