A Chrome programozási nyelv

Alprogramok, modulok



Forrásfájl szerkezete

A Pascal nyelvhez hasonlóan, itt is kötött a forrásfájl szerkezete. Három főbb részből áll:

namespace interface uses type <interface definition(s)> <class definition(s)> <record definition(s)> <arrays> <method definition(s)> const <> implementation uses types arrays const method implementation(s) classname.method implementation(s) end.

Alprogramok, függvények

A Chrome nyelvben nincsenek külön alprogramok és függvények, hanem csak osztálymetódusok, amik attól függően, hogy van visszatérési érték vagy nincs függvényként illetve alprogramként használható. Szintaxis: szintaxis, láthatóság, visszatérési érték, alprogram függvény

[class] method classname.methodname [parameters] [: result] ; begin [methodbody] end;

A metódusoknak az osztályhoz hasonlóan meg tudunk adni láthatóságot. (Részletesebben lásd az osztályok láthatóságánál). A "result" kulcsszó után lehet megadni a visszatérési értékeket.

Paraméterek

Három féle paramétert különböztetünk meg:

A paramétereket 3 féle képpen lehet deklarálni: Ha nem nem írunk a paraméter elé semmit, akkor az érték szerinti paraméterátadásnak számít és a változások elvesznek a metódus visszatérése után.
Példák:

method Test1(a1: Word; const a2: String; var a3: Integer; out a4: Byte); method Test2(b1,b2: Word; const b3,b4: String; var b5,b6: Integer; out b7,b8: Byte); method Test3(c1: Word := 5; const c2: String := 'abc'; var c3: Integer := 8);

Túlterhelés

A Chrome támogatja a túlterhelést, azaz lehet azonos nevű de különböző szignatúrával rendelkező metódusokat írni. Ekkor mindig a függvényhívásra legjobban illeszkedő hajtódik végre.

Operátor felüldefiniálás

A nyelv lehetőséget biztosít, arra hogy operátorokat definiáljuk illetve a már meglévőket felüldefiniáljuk. Például:

type ComplexNumber = class … public class operator Add(a: ComplexType; b: ComplexType): ComplexType; class operator Add(a: ComplexType; b: Int32): ComplexType; class operator Implicit(a: Int32): ComplexType; end;

Ezen kívül lehetőség van az ősosztály metódusainak felüldefiniálására is. A virtuális metódusok felülírása az "override" kulcsszóval lehetséges.

Rekurzió

A nyelv támogatja a rekurziót.