The initializing declaration is just a convenient short form of a variable declaration followed by an assignment statament. The constant declaration has just the variable name, two colons and an equals sign, and an expression. The type of the variable is omitted, but the compiler just uses the static type of the expression. The two colons and equals sign mimic a colon, an absent type expression, a colon and equals sign, and an expression to assign, as in an initializing declaration. At this time, only positive decimal integers and quoted strings are supported as literals.
Negative integers are actually an invocation of the unary negation operator.
String literals are enclosed in double quotes. To indicate a double quote character within the string, use two consecutive double quotes. Wherever a variable name occurs in a program, its current value will be used at runtime. The exceptions to this are during the declaration of a variable, in an assignment to a variable, in a reference expression, in a block 's formal argument declarations, and in a label declaration. In these cases, it's the variable itself that is being mentioned, not its value.