Q 语言初学者系列:(2)基本数据类型

本文详细介绍了Q语言中的各种数据类型及其表示方法,包括整数、浮点数、字符、时间等多种类型,并提供了实例说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

明:本系列文章全部参考自官方教程,由于缺乏中文资料而且本人E文实在太菜,对于E文较好的朋友可以直接通过下面的链接访问官方网站提供的教程,
欢迎大家一起学习讨论。
hhttps://code.kx.com/trac/wiki/QforMortals2/contents
用户名跟密码为anonymous

转自:http://blog.youkuaiyun.com/kraussyin/article/details/47036343
Q语言跟C#、Java还有SQL基本数据类型的比较

QSQLJavaC#
booleanbooleanBooleanBoolean
bytebyteByteByte
shortsmallintShortInt16
intintIntegerInt32
longbigintLongInt64
realrealFloatSingle
floatfloatDoubleDouble
charchar(1)CharacterChar
symbolvarchar(String)(String)
datedateDate 
datetimedatetimeTimestamp!DateTime
minute   
second   
timetimeTime!TimeSpan
enumeration   


各种数据类型的信息

typesizechar typenum typenotationnull value
boolean1b11b0b
byte1x40x260x00
short2h542h0Nh
int4i6420N
long8j742j0Nj
real4e84.2e0Ne
float8f94.20n
char1c10"z"" "
symbol*s11‘zaphod`
month4m132006.07m0Nm
date4d142006.07.210Nd
datetime4z152006.07.21T09:13:390Nz
minute4u1723:590Nu
second4v1823:59:590Nv
time4t1909:01:02:0420Nt
enumeration  *`u$v 
dictionary  99`a`b`c!!10 20 30 
table  98([] c1:ab`c; c2:10 20 30) 
 

下面继续针对各种数据类型的讲解:
1.       整数数据(Integer Data
    整数类型跟其它编程语言的描述基本相同。

            int
    int占用4个字节的内存空间,存储了一个整型的数字。

            short
    short 占用两个字节的内存空间,只能存储一个较小的整数,以”h”结尾。

e.g.
q)b:-123h
q)b
-123h

            long
    long 占用了8个字节的内存空间,可以容纳较大的整数,以”f”结尾。

e.g.
q)c:1234567890j
q)c
1234567890j 

2.       浮点数据(Floating Point Data
支持科学记数法。

            float
        可以保证至少15位小数的的精度,以”f”结尾。相当于JAVAC#里面的double

            real
        可以保证至少6位小数的的精度,以”e”结尾。相当于JAVAC#里面的float

3.       二进制数据(Binary Data

            boolean
        当条件为真是,值为1b, 当条件为假时,值为0b

e.g.
q)1=1
1b
q)1=0
0b

byte

4.       字符数据(Char Data)

            char
    表示一个字符使用的是引号。

e.g.
q)ch:”q”
q)ch
“q”

还可以使用”\”做为转义字符,这跟C#和JAVA是一样的。

q)ch:"\""                        / double-quote
q)ch                             / console also displays the escape "\"" 
q)ch:"\\"                        / back-slash
q)ch:"\n"                        / newline
q)ch:"\r"                        / return
q)ch:"\t"                        / horizontal tab
       

5.       symbol
symbol是由`符号开头的一串字符,但symbol并不等同于字符串。
那么如何才能让一个symbol包含空格等特殊符号呢?答案就是通过字符串,下面的例子并说明:

e.g.
q)`$"A symbol with `backtick"
`A symbol with `backtick

6.       时间类型

            date
       date类型的值的定义格式应该为yyyy.mm.dd,月份跟日期不够两位数需要在前面加0

e.g.
q)d:2008.07.03
q)d
2008.07.03 

还可以通过d.year, d.mm, d.dd 获取到年、月跟日期,d.month可以得到month的对象。 

            time
       time 类型的值的定义格式应该为hh:mm:ss.uu,同样需要补0的地方还是要补上

e.g.
q)t:16:30.000
q)t
16:30.000

可以通过t.hh, t.mm, t.ss 获取到小时、分钟跟秒,t.minute 跟 t.second 得取到minute跟second的对象。 

            datetime
        datetime 的格式是由datetime中间通过“T”隔开的标准格式

e.g.
q)dt:2006.07.04T09:04:59:000
q)dt
2006.07.04T09:04:59:000 

Datetime具备了datetime所有的属性外还可以通过dt.datedt.time得到datetime的对象。 

            month
        month 的格式为yyyy.mm,而且需要在末尾追回一个字符“m”

e.g.
q) mon:2006.07m
q)mon
2006.07m

            minute
        minute 的格式为hh:mm

            second
        second 的格式为 hh:mm:ss

7.       无穷大 跟 非数字 类型(Infinities and NaN)
下表列出了各种类型的无穷大的表示法:

TokenValue
0wPositive float infinity
-0wNegative float infinity
0WPositive int infinity
-0WNegative int infinity
0WhPositive short infinity
-0WhNegative short infinity
0WjPositive long infinity
-0WjNegative long infinity
0WdPositive date infinity
-0WdNegative date infinity
0WtPositive time infinity
-0WtNegative time infinity
0WzPositive datetime infinity
-0WzNegative datetime infinity
0nNaN, or not a number

8.       空值类型(Null Values
下表列出了各种类型的空值表示法:

typenull
boolean0b
byte0x00
short0Nh
int0N
long0Nj
real0Ne
float0n
char" "
sym`
month0Nm
date0Nd
datetime0Nz
minute0Nu
second0Nv
time0Nt

 
0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值