概览
参照该文里的两个表格来了解Q的数据类型。其中:
- type:类型名称
- size:该类型占用多少个字节
- char type:该类型的单字符代号,可以跟在值后面表示类型,例如1b表示boolean的true
- num type:该类型的数字代号,type命令可以用来查看一个变量的类型,以数字代号表示。数字前面带-号表示原子类型,不带-号表示是该原子类型的列表
type 0Nj -7h type (1j;2j) 7h
注意KDB 3.1以后默认类型有些变化,例如原来一个数字默认是int,3.1之后默认是long
type 0Ni -6h type 0Nj -7h type 0N -7h
浮点数
float类型的精度不少于15位小数,real类型的精度不少于6位小数。注意q控制台显示值的时候值显示7位精度的数字,例如
q)1.123456789 1.123457 q)1.123456789e 1.123457e
可以通过“\P”命令更改显示精度
q)\P 16 q)1.123456789 1.123456789 q)1.123456789e 1.123456835746765e
二进制数据
包括boolean和byte。0b是false,1b是true。byte用16进制表示,如0x2a。二进制数据可以当作数值参与计算。
文本数据
包括char和symbol。
char是单字符,使用\作特殊符号的转义符,例如"\"","\n"等。也支持反斜杠后跟数字表示ASCII,如"\142"表示”b"。
symbol以`开头。symbol与string的区别
- string是一个char列表,而symbol是不能再拆分的原子类型,它并不是由char组成,例如我们可以取得一个string的第几个字符,而symbol则没有这种做法
q)"abc"[0] "a" q)`abc[0] 'abc
`$"A symbol with `backtick"