Skip to content

Keywords

Keywords are the building blocks that make up your program. They are the root words of the language and the common essential words used when expressing the program.

Keywords have been pre-reserved in the language and are not allowed to be used as identifiers.

List of Keywords

jule
map      type      impl      self
trait    struct    enum      fn
const    let       static    mut
for      in        break     continue
goto     match     fall      if
else     ret       error     use
co       cpp       unsafe    defer
chan     select

Imaginary Keywords

Imaginary keywords are words that are not keywords for Jule, but are recommended for developers to treat as if they were a keyword. These words are mostly aliases for built-in types, reserved names for some functions or constant variables.

Developers can use these words as identifiers to functions and other definitions if they wish, but this can lead to a variety of development issues and readability challenges. Because relevant word now points to a new definition defined by the developer instead of its commonly used built-in definition.

For example:

jule
type int: str

fn main() {
    let a: int = "hello world"
    println(a)
}

As seen in the example above, the variable a is defined as int type. At first glance, the variable a may be thought to be an integer, but the identifier int has been redefined for an alias and corresponds to the type str. Therefore, the type a is str, not int.

List of Imaginary Keywords

jule
int       uint      uintptr    i8
i16       i32       i64        u8
u16       u32       u64        f32
f64       bool      str        any
rune      byte      new        make
copy      append    out        outln
delete    cap       len        panic
true      false     nil

INFO

According to Jule's public modifier rules, no reserved keyword can be public. So if you want to use a reserved keyword as an identifier, this would be a name used only within this package, will not be exported for public use.