Literals

Literals serve to write values of any data type.

Table 64.1. Literals

LiteralDescriptionDeclaration syntaxExample
integerdigits representing integer number[0-9]+95623
long integerdigits representing integer number with absolute value even greater than 231, but less than 263[0-9]+L?257L, or 9562307813123123
hexadecimal integerdigits and letters representing integer number in hexadecimal form0x[0-9A-F]+0xA7B0
octal integerdigits representing integer number in octal form0[0-7]*0644
number (double)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 stringstring 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 stringstring value/literal enclosed in single quotes; only one escaped character [\'] gets translated into corresponding char [']'...anything except [']...''hello\tworld\n\r'
list of literalslist of literals where individual literals can also be other lists/maps/records[ <any literal> (, <any literal>)* ][10, 'hello', "world", 0x1A, 2008-01-01 ], [ [ 1 , 2 ] ] , [ 3 , 4 ] ]
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 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!