惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
Lohrmann on Cybersecurity
S
Secure Thoughts
I
Intezer
Forbes - Security
Forbes - Security
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
H
Help Net Security
IT之家
IT之家
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
宝玉的分享
宝玉的分享
S
Securelist
T
The Exploit Database - CXSecurity.com
博客园 - 叶小钗
Security Latest
Security Latest
The Cloudflare Blog
Jina AI
Jina AI
T
Tenable Blog
J
Java Code Geeks
G
GRAHAM CLULEY
C
CERT Recently Published Vulnerability Notes
SecWiki News
SecWiki News
AI
AI
博客园 - 聂微东
S
Schneier on Security
博客园_首页
爱范儿
爱范儿
有赞技术团队
有赞技术团队
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
www.infosecurity-magazine.com
www.infosecurity-magazine.com
博客园 - 【当耐特】
T
Threatpost
Security Archives - TechRepublic
Security Archives - TechRepublic
Help Net Security
Help Net Security
酷 壳 – CoolShell
酷 壳 – CoolShell
Recent Announcements
Recent Announcements
W
WeLiveSecurity
M
MIT News - Artificial intelligence
H
Hackread – Cybersecurity News, Data Breaches, AI and More
月光博客
月光博客
阮一峰的网络日志
阮一峰的网络日志
Last Week in AI
Last Week in AI
T
Threat Research - Cisco Blogs
S
Security Affairs
T
Tor Project blog
T
Tailwind CSS Blog
N
News | PayPal Newsroom
C
CXSECURITY Database RSS Feed - CXSecurity.com
云风的 BLOG
云风的 BLOG
P
Proofpoint News Feed
The Register - Security
The Register - Security
D
Darknet – Hacking Tools, Hacker News & Cyber Security

博客园 - 阿武

Moto G 通话没声音 Android 手机技巧 一个Java程序的生死旅程 精妙语录 【Windows Phone 7】【软件发布】深圳通助手 & 深圳长途汽车查询 & 深圳地铁通 [C++ Primer] Passing an array to a function by reference/pointers -- sample 【Ruby】删除旧文件 京东自动抢购机 64位的处理器支持多大的内存? 将.NET Entity Framework 的 Cache模块移植到JAVA平台 做快乐的程序员 Q 语言初学者系列:(3)Lists 初级 KDB+性能分析:内存篇 Q 语言初学者系列:(1)开门篇 熟悉的感觉 盘点自己两年来走过的路 [JAVA]你见过这样的switch吗? - 阿武 - 博客园 网站上图片"另存为" 为什么是 bmp 格式 经实验, 网线两端都接在交换机上并不会烧毁交换机
Q 语言初学者系列:(2)基本数据类型
阿武 · 2008-07-10 · via 博客园 - 阿武
Q SQL Java C#
boolean boolean Boolean Boolean
byte byte Byte Byte
short smallint Short Int16
int int Integer Int32
long bigint Long Int64
real real Float Single
float float Double Double
char char(1) Character Char
symbol varchar (String) (String)
date date Date
datetime datetime Timestamp !DateTime
minute


second


time time Time !TimeSpan
enumeration



各种数据类型的信息

type size char type num type notation null value
boolean 1 b 1 1b 0b
byte 1 x 4 0x26 0x00
short 2 h 5 42h 0Nh
int 4 i 6 42 0N
long 8 j 7 42j 0Nj
real 4 e 8 4.2e 0Ne
float 8 f 9 4.2 0n
char 1 c 10 "z" " "
symbol * s 11 ‘zaphod `
month 4 m 13 2006.07m 0Nm
date 4 d 14 2006.07.21 0Nd
datetime 4 z 15 2006.07.21T09:13:39 0Nz
minute 4 u 17 23:59 0Nu
second 4 v 18 23:59:59 0Nv
time 4 t 19 09:01:02:042 0Nt
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 得取到minutesecond的对象。 

            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
下表列出了各种类型的无穷大的表示法:

Token Value
0w Positive float infinity
-0w Negative float infinity
0W Positive int infinity
-0W Negative int infinity
0Wh Positive short infinity
-0Wh Negative short infinity
0Wj Positive long infinity
-0Wj Negative long infinity
0Wd Positive date infinity
-0Wd Negative date infinity
0Wt Positive time infinity
-0Wt Negative time infinity
0Wz Positive datetime infinity
-0Wz Negative datetime infinity
0n NaN, or not a number

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

type null
boolean 0b
byte 0x00
short 0Nh
int 0N
long 0Nj
real 0Ne
float 0n
char " "
sym `
month 0Nm
date 0Nd
datetime 0Nz
minute 0Nu
second 0Nv
time 0Nt