Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Excerpthiddentrue

units, functions, comments, global scope

 

Table of Contents

 

Units and Functions

Units are groupings of functions and variables appearing in .mez files. They can be thought of as modules or namespaces. A Helium app must have at least one unit. The unit keyword must be followed by a unique unit name. A unit must have at least one function.

 

Code Block
languagejava
titleUnit Example
linenumberstrue
unit MyUnit;
// Other code follows
 
string myVar;
 
int factorial(int x) {
    if(x == 0 || x == 1) {
        return 1;
    } else if (x > 1) {
        return factorial(x - 1);
    }
 
    return 0;
}

 

 

Info

Objects, enums and validators are global, so they can optionally be in a separate source code file without a unit.

Mez File Comments

Two types of comments are supported: single line comments and multi-line comments:

Code Block
languagejava
titleSingle Line Comments Example
linenumberstrue
// date tstamp = System.now();
// decimal rand = System.random();
Code Block
languagejava
titleMulti-line Comments Example
linenumberstrue
/* date tstamp = System.now();
decimal rand = System.random(); */

 

 

 

Variable and Function Scope

Suppose a unit MyUnit has a unit variable named myVar and a function named factorial. Both have global scope and can be accessed by any function in this or other units. The only time a variable or custom object in the Helium DSL is not globally scoped is when it is declared inside a function and thus scoped to the function alone. To refer to a unit’s member functions or variables from another unit, you have to use the scope operator (the colon).

Code Block
languagejava
linenumberstrue
unit TestUnit;
void test() {
    MyUnit:myVar = "New string value!";
    int f = MyUnit:factorial(5);
}

 

 Note: Unit variables cannot be in line initialized when they are declared. The following code will not compile:

Code Block
languagejava
linenumberstrue
unit MyUnit;

string myVar = "some value"; // this is not a legal statement

 


 

Additional Mentions and References

 

Excerpt
hiddentrue

units, functions, comments, global scope