Literals
A literal is a value written directly in source code. This page covers the syntax for all literal forms in Komplete Script.
Integer Literals
Integer literals represent whole numbers and are of type Int.
Decimal
var a = 42
var b = 0
Hexadecimal
Hexadecimal literals are prefixed with 0x or 0X. Both uppercase and lowercase digits are accepted.
var red = 0xFF0000
var color = 0xDEADBEEF
Floating-Point Literals
Floating-point literals represent fractional numbers and are of type Float. They require at least one digit on each side of the decimal point.
Decimal
var pi = 3.14159
var zero = 0.0
Exponent Notation
Use e or E followed by an optional sign (+ or -) and an integer exponent. The value equals the base multiplied by 10 raised to the given exponent.
var a = 1.5e10 // 1.5 × 10¹⁰
var b = 1.5e+10 // same as above
var c = 1.5e-3 // 1.5 × 10⁻³ → 0.0015
var d = 2.0E6 // 2.0 × 10⁶
var e = 2.0E+6 // same as above
var f = 2.0E-6 // 2.0 × 10⁻⁶
Special Values
Two named constants are available for special floating-point values:
| Constant | Description |
|---|---|
nan | Not a Number — result of undefined operations such as 0.0 / 0.0 |
infinity | Positive infinity |
var a: Float = infinity
var b: Float = nan
String Literals
String literals are enclosed in double quotes (").
var greeting = "Hello, world!"
var empty = ""
See String in the Standard Library for escape sequences, Unicode codepoints, and string interpolation.
Boolean Literals
Boolean literals are of type Bool.
var yes = true
var no = false
Array Literals
Array literals are written as a comma-separated list of values enclosed in square brackets ([]). A trailing comma after the last element is allowed.
var scores = [10, 20, 30]
var names = ["Alice", "Bob",] // trailing comma ok
var empty: [Int] = [] // type annotation required for empty arrays
Map Literals
Map literals are written as a comma-separated list of key: value pairs enclosed in square brackets. A trailing comma is allowed. An empty map literal is written as [:] to distinguish it from an empty array.
var ages = ["Alice": 30, "Bob": 25]
var lookup = [1: "one", 2: "two",] // trailing comma ok
var empty: [String: Int] = [:] // type annotation required for empty maps
Nil Literal
nil is the literal for the absence of a value. It can be assigned to any optional type.
var name: String? = nil
See Optionals for details.