Version

    Literals

    Literals serve to write values of any data type.

    Table 67.1. Literals

    LiteralDescriptionDeclaration syntaxExample
    integerdigits 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 integerdigits and letters representing an integer number in hexadecimal form0x[0-9A-F]+0xA7B0
    octal integerdigits representing an integer number in octal form0[0-7]*0644
    number (double)a floating point number represented by 64bits in double precision format[0-9]+.[0-9]+456.123
    decimaldigits representing a decimal number[0-9]+.[0-9]+D123.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'
    listlist 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 }
    datedate valuethis mask is expected: yyyy-MM-dd2008-01-01
    datetimedatetime valuethis mask is expected: yyyy-MM-dd HH:mm:ss2008-01-01 18:55:00

    [Important]Important

    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.

    [Important]Important

    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.