Template:Scripting variables
Variabelen
Een programma bewerkt data. Deze data worden tijdelijk opgeslagen in het geheugen. Om naar dit geheugen te verwijzen gebruiken we variabelen. Elke variabele bevat een value die gewijzigd kan worden.
Elke variabele heeft een name.
Elke variabele moet voor gebruik gedeclareerd worden (in MEL)
De declaratie van een variabele houdt in dat de naam en het type van de variabele gedefinieerd worden, en dat de variabele een initiële waarde toegekend krijgt.
De declaratie van een variabele heeft de volgende vorm:
type $variabeleNaam [= initiëleWaarde]; De naam van een variabele wordt steeds voorafgegaan door een dollar-teken ('$') (in MEL).
Elke variabele heeft een type (in MEL)
Dit (data) type bepaalt welke soort waarden deze variabele kan bevatten. Dit type kan na declaratie niet meer gewijzigd worden.
MEL onderscheidt een vijftal verschillende data typen.
Variabele type | Soort waarden |
int | gehele getallen (integers) |
float | decimale getallen (floating-point numbers) |
string | strings / alfanumerieke waarden |
vector | drie-dimensionale vectoren |
matrix | matrices |
Eenmaal gedeclareerd, kan de variabele gebruikt worden. Wil je de waarde van een variabele in een instructie gebruiken, is het vaak voldoende om de naam van de variabele (inclusief het $-teken) ter vervanging van de waarde in de instructie te plaatsen.
Examples:
float $f = 1.5;
string $hallo = "Hallo wereld";
int $straal = 2;
sphere -r $straal;
$straal = 4;
sphere -r $straal;
Identifiers
De naam van een variabele is onderhevig aan een aantal regels. Deze regels gelden in het algemeen zowel voor de namen van variabelen als voor de namen van procedures, en zowel in MEL als in andere programmeertalen. Dergelijke namen worden ook identifiers genoemd.
Een identifier:
begint steeds met een letter of een streep ('_', underscore). bestaat enkel uit letters, cijfers en _-tekens is gevoelig voor hoofd- en kleine letters (in MEL) Dus, vermijd namen die enkel verschillen in het gebruik van hoofd- of kleine letters
Voor de naam van een variabele geldt (in MEL) bovendien dat deze steeds voorafgegaan wordt door een dollar-teken ('$').
Denk eraan, gebruik namen die betekenisvol zijn binnen de context van je script. Dat maakt het gemakkelijker te lezen.
Examples:
$Tijd
$mijn_naam
$tekst1
Waarde toekenning
Tijdens de declaratie van een variabele kan deze een waarde toegekend worden. Dit noemen we de initialisatie van de variabele. Wordt de initialisatie van de variabele in de declaratie weggelaten, dan krijgt deze variabele in de plaats een defaultwaarde toegekend. ↓
Na de declaratie kan de waarde van een variabele enkel gewijzigd worden via een (expliciete) waardetoekenning (assignment). De waardetoekenning van een variabele heeft de volgende vorm:
$variabeleNaam = uitdrukking;
Hier geldt dat:
- de linkerzijde in de toekenning is steeds een variabele
- de rechterzijde is een uitdrukking waarvan het resultaat compatibel is met het type van de variabele
Let op, $x = $y; geeft een ander resultaat dan $y = $x;
Bij een waardetoekenning wordt de huidige waarde van de variabele overschreven'. Wil je de nieuwe waarde afhankelijk maken van de oude waarde, dan moet je hiermee rekening houden in de uitdrukking, bijv.:
$som = $som + $x;
Examples:
int $i; // initiële waarde is 0
float $f = 1.5;
float $g = $f + 2;
// Result: 3.5 //
print $f;
string $uitroep = "MEL" + " is leuk!"
// Dit is hetzelfde als "MEL is leuk!"
Constanten
De waarde die een variabele kan aannemen is afhankelijk van het type van de variabele. Deze waarde kan gewijzigd worden door middel van een waardetoekenning (of initialisatie). De nieuwe waarde van de variabele is dan het resultaat van een uitdrukking. Deze uitdrukking kan ook een constante uitdrukking zijn, d.w.z., een constante waarde.
Gehele getallen (type int ) worden decimaal of hexadecimaal geschreven:
- decimaal: 5 -20 0 32000
- hexadecimaal:
- 0xA0 // is gelijk aan 160
- 0xFFF // is gelijk aan 4095
Decimale getallen (type float) worden met een decimaalpunt geschreven:
3.1415926 2.0 -6592.582 0.0
Alfanumerieke constanten of strings worden tussen (dubbele) aanhalingstekens geschreven:
"MEL is fun!" "abcdef012345" ":<>()&^%ABC"
Een vector is een serie van 3 decimale getallen. Deze serie wordt omsloten met dubbele haakjes << ... >> en de getallen met komma's gescheiden:
<<1.0, 0.0, 0.0>> <<3.0, 7.7, 9.1>>
Een matrix is een twee-dimensionele serie van decimale getallen. Deze serie wordt omsloten met dubbele haakjes << ... >>, de getallen (kolommen) met komma's gescheiden, de rijen met puntkomma's gescheiden:
<<1.0, 0.0, 0.0; 3.0, 7.7, 9.1; 0.0 0.0 0.0>> // 3x3 matrix
De default initiële waarde van een variabele is afhankelijk van het type van de variabele:
Variabel type | Default initial value |
int | 0 |
float | 0.0 |
string | "" (empty string) |
vector | <<0.0, 0.0, 0.0>> |
matrix | every element 0.0 |