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


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


    Q语言跟C#、JAVA还有SQL基本数据类型的比较

    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

     
  • 相关阅读:
    小白日记41:kali渗透测试之Web渗透-SQL手工注入(三)-猜测列名、表名、库名、字段内容,数据库写入
    Python实现百度贴吧自动顶贴机
    回文自动机简述
    计算几何基本知识整理
    考试题Speed
    [ZOJ 2112] [lg2617] Dynamic Rankings
    后缀数组(Suffix Arrary)
    莫比乌斯函数与莫比乌斯反演
    题解 洛谷 P3369 【【模板】普通平衡树】
    EXCRT(扩展中国剩余定理)
  • 原文地址:https://www.cnblogs.com/yyw84/p/1239623.html
Copyright © 2020-2023  润新知