Version

    Literals

    Literals serve to write values of any data type.

    Table 79. Literals
    Literal Description Declaration syntax Example

    integer

    digits representing integer number

    [0-9]+

    95623

    long integer

    digits representing an integer number with absolute value even greater than 231, but less than 263

    [0-9]+L?

    257L, or 9562307813123123L

    hexadecimal integer

    digits and letters representing an integer number in hexadecimal form

    0x[0-9A-F]+

    0xA7B0

    octal integer

    digits representing an integer number in octal form

    0[0-7]*

    0644

    number (double)

    a floating point number represented by 64bits in double precision format

    .[0-9]

    456.123

    decimal

    digits representing a decimal number

    [0-9]+.[0-9]+D

    123.456D

    double quoted string

    string value/literal enclosed in double quotes; escaped characters [\n,\r,\t, \\, \", \b] get translated into corresponding control chars

    "…​anything except ["]…​"

    "hello\tworld\n\r"

    single quoted string

    string value/literal enclosed in single quotes; only one escaped character [\'] gets translated into corresponding char [']

    '…​anything except [']…​'

    'hello\tworld\n\r'

    list

    list of expressions where all elements are of the same data type

    [ <element> (, <element>)* ]

    [] for an empty list

    [10, 16 + 1, 31] or ['hello', "world" ]

    map

    list of key-value mappings where all keys and all values are expressions of the same data type

    { <key> → <value> (, <key> → <value>)* }

    {} for an empty map

    { "a" → 1, "bb" → 2 }

    date

    date value

    this mask is expected: yyyy-MM-dd

    2008-01-01

    datetime

    datetime value

    this mask is expected: yyyy-MM-dd HH:mm:ss

    2008-01-01 18:55:00

    You cannot use any literal for the byte data type. If you want to write a byte value, you must use any of the conversion functions that return byte and apply it on an argument value.

    For information on these conversion functions, see Conversion Functions.

    Remember that if you need to assign a decimal value to a decimal field, you should use decimal literal. Otherwise, such number would not be decimal, it would be a double number.

    For example:

    1. Decimal value to a decimal field (correct and accurate)

      // correct - assign decimal value to decimal field

      myRecord.decimalField = 123.56d;

    2. Double value to a decimal field (possibly inaccurate)

      // possibly inaccurate - assign double value to decimal field

      myRecord.decimalField = 123.56;

    The latter might produce inaccurate results.