Literals
Literals serve to write values of any data type.
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 2 31, but less than 2 63 | [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> → (, <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 thebyte
data type. If you want to write abyte
value, you must use any of the conversion functions that returnbyte
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:
- Decimal value to a decimal field (correct and accurate)
// correct - assign decimal value to decimal field
myRecord.decimalField = 123.56d;
- 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.
Updated about 1 year ago