elasticsearch
Loading

Literals

Serverless Stack

Literals represent fixed values in your code that are directly written into your script. Unlike variables, literals have constant values that cannot be changed during script runtime. The three supported types of literals are: integers, floats, and strings.

Use an integer literal to specify an integer-type value in decimal, octal, or hex notation of a primitive type int, long, float, or double. Use the following single-letter designations to specify the primitive type: l or L for long, f or F for float, and d or D for double. If not specified, the type defaults to int. Use 0 as a prefix to specify an integer literal as octal, and use 0x or 0X as a prefix to specify an integer literal as hex.

INTEGER: '-'? ( '0' | [1-9] [0-9]* ) [lLfFdD]?;
OCTAL:   '-'? '0' [0-7]+ [lL]?;
HEX:     '-'? '0' [xX] [0-9a-fA-F]+ [lL]?;
		
  • Integer literals

    int i = 0;
    double d = 0D;
    long l = 1234L;
    float f = -90f;
    int e = -022;
    int x = 0xF2A;
    		
    1. int 0
    2. double 0.0
    3. long 1234
    4. float -90.0
    5. int -18 in octal
    6. int 3882 in hex

Use a floating-point literal to specify a floating-point-type value of a primitive type float or double. Use the following single-letter designations to specify the primitive type: f or F for float and d or D for double. If not specified, the type defaults to double.

DECIMAL: '-'? ( '0' | [1-9] [0-9]* ) (DOT [0-9]+)? EXPONENT? [fFdD]?;
EXPONENT: ( [eE] [+\-]? [0-9]+ );
		
  • Floating point literals

    double b = 0.0;
    double d = 1E6;
    double c = 0.977777;
    double n = -126.34;
    float f = 89.9F;
    		
    1. double 0.0
    2. double 1000000.0 in exponent notation
    3. double 0.977777
    4. double -126.34
    5. float 89.9

Use a string literal to specify a string type value with either single-quotes or double-quotes. Use a " token to include a double-quote as part of a double-quoted string literal. Use a ' token to include a single-quote as part of a single-quoted string literal. Use a \\ token to include a backslash as part of any string literal.

STRING: ( '"'  ( '\\"'  | '\\\\' | ~[\\"] )*? '"'  )
      | ( '\'' ( '\\\'' | '\\\\' | ~[\\'] )*? '\'' );
		
  • String literals using single-quotes

    String a = 'single-quoted string literal';
    String b = '\'single-quoted with escaped single-quotes\' and backslash \\';
    String c = 'single-quoted with non-escaped "double-quotes"';
    		
  • String literals using double-quotes

    String a = "double-quoted string literal";
    String b = "\"double-quoted with escaped double-quotes\" and backslash: \\";
    String c = "double-quoted with non-escaped 'single-quotes'";
    		

Character literals are not specified directly in Painless. Instead, use the cast operator to convert string type value into a char type value.

For detailed information about character types, casting, and usage, refer to Character type usage.