您的位置:首页 > 其它

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

2016-11-11 09:27 387 查看
明:本系列文章全部参考自官方教程,由于缺乏中文资料而且本人E文实在太菜

,对于E文较好的朋友可以直接通过下面的链接访问官方网站提供的教程,

欢迎大家一起学习讨论。
hhttps://code.kx.com/trac/wiki/QforMortals2/contents
用户名跟密码为anonymous

转自:http://blog.csdn.net/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”结尾。相当于JAVA或C#里面的double

            real
        可以保证至少6位小数的的精度,以”e”结尾。相当于JAVA或C#里面的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 的格式是由date跟time中间通过“T”隔开的标准格式

e.g.

q)dt:2006.07.04T09:04:59:000

q)dt

2006.07.04T09:04:59:000 

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

            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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: