Keywords¶
This listing explains the usage of every Pony keyword.
| Keyword | Usage | 
|---|---|
| actor | defines an actor | 
| as | conversion of a value to another Type (can raise an error) | 
| be | behavior, executed asynchronously | 
| box | default reference capability – object is readable, but not writable | 
| break | to step out of a loop statement | 
| class | defines a class | 
| compile_error | will provoke a compile error | 
| compile_intrinsic | implementation is written in C and not available as Pony code | 
| continue | continues a loop with the next iteration | 
| consume | move a value to a new variable, leaving the original variable empty | 
| digestof | create a USizevalue that summarizes the Pony object, similar to a Java object’shashCode()value. | 
| do | loop statement, or after a with statement | 
| else | conditional statement in if, for, while, repeat, try (as a catch block), match | 
| elseif | conditional statement, also used with ifdef | 
| embed | embed a class as a field of another class | 
| end | ending of: if then,ifdef,while do,for in,repeat until,try,object,recover,match | 
| error | raises an error | 
| for | loop statement | 
| fun | define a function, executed synchronously | 
| if | (1) conditional statement | 
| (2) to define a guard in a pattern match | |
| ifdef | when defining a build flag at compile time: ponyc –D “foo” | 
| iftype | type conditional statement iftype A <: Bchecks ifAis a subtype ofB | 
| in | used in a for in - loop statement | 
| interface | used in structural subtyping | 
| is | (1) used in nominal subtyping | 
| (2) in type aliasing | |
| (3) identity comparison | |
| isnt | negative identity comparison | 
| iso | reference capability – read and write uniqueness | 
| let | declaration of immutable variable: you can’t rebind this name to a new value | 
| match | pattern matching | 
| new | constructor | 
| not | logical negation | 
| object | to make an object literal | 
| primitive | declares a primitive type | 
| recover | removes the reference capability of a variable | 
| ref | reference capability – object (on which function is called) is mutable | 
| repeat | loop statement | 
| return | to return early from a function | 
| tag | reference capability – neither readable nor writeable, only object identity | 
| then | (1) in if conditional statement | 
| (2) as a (finally) block in try | |
| this | the current object | 
| trait | used in nominal subtyping: class Foo is TraitName | 
| trn | reference capability – write uniqueness, no other actor can write to the object | 
| try | error handling | 
| type | to declare a type alias | 
| until | loop statement | 
| use | (1) using a package | 
| (2) using an external library foo: use “lib:foo” | |
| (3) declaration of an FFI signature | |
| (4) add a search path for external libraries: use "path:/usr/local/lib" | |
| var | declaration of mutable variable: you can rebind this name to a new value | 
| val | reference capability – globally immutable object | 
| where | when specifying named arguments | 
| while | loop statement | 
| with | ensure disposal of an object |