this documentation is work-in-progress, edit here (md).

Teksten

Telkens als u een tekst tussen aanhalingstekens [‘…’] zet, maakt XOScript voor u een nieuw Tekstobject. U kunt berichten naar dit Tekst-object sturen, net zoals u berichten naar andere objecten kunt sturen. Dat kan nadat u de tekst heeft toegewezen aan een variabele maar ook al direct daarvoor:

>> aantal-letters := ['Hallo'] lengte.
>> groet := ['Hallo'].

Conversies

Soms krijgt u een getal terug in de vorm van een tekst. Bijvoorbeeld als invoer van de gebruiker:

>> x := Programma vraag.

Het antwoord komt als tekst in de variabele x. Om van deze tekst een getal te maken, sturen we het bericht getal, vanaf dat moment kunnen we getalberichten sturen. In het algemeen geldt dat u een kopie van elk object kunt maken met een ander type. U gebruikt hiervoor de volgende berichten: getal, bool, tekst.

Kopiëren

Met de := kunnen we objecten opslaan onder een bepaalde naam. We kunnen een object ook onder meerdere namen opslaan. Houd u er rekening mee dat dit niet hetzelfde is als een kopie maken.

>> schaap := ['Dolly'].
>> kloon := schaap.
kloon
vervang: ['l'] door: ['n'].
Uit schrijf: schaap, stop.
Donny

Om een object te kopiëren moet u dit expliciet aangeven:

>> kloon := schaap kopieer.

Door het enkelvoudige bericht kopieer te sturen naar een Tekst-object zal deze antwoorden met een kopie van dat Tekst-object. Op dezelfde manier kunt u Getal-objecten, Lijsten, Reeksen, Ja/Neeobjecten, Reeksen, Lijsten en Moment-objecten kopiëren. Andere objecten kunt u niet zomaar kopiëren. De reden hiervoor is dat het niet altijd duidelijk is hoe de kopieeractie moet worden uitgevoerd, in dat geval dient u dit zelf te specificeren. In het geval van een reeks bijvoorbeeld, rijst de vraag of subreeksen onderdeel moeten uitmaken van de kopie, en zo ja, hoe diep gaan we dan? De standaard kopie-implementatie van Reeks maakt een oppervlakkige kopie.

Impliciete conversie

XOScript converteert intern objecten. Om een reeks af te drukken op het scherm, stuurt XOScript bijvoorbeeld intern het bericht tekst naar de reeks. U kunt hier handig gebruik van maken. Stel dat u bijvoorbeeld een reeks wilt afdrukken als een kommagescheiden opsomming, dan kunt u het bericht tekst overschrijven:

>> som := Reeks ← 1 ; 2 ; 3.
som bij: ['tekst'] doen: {
<- zelf samenvoegen: [','].
}.
Uit schrijf: som, stop.
1,2,3

Bij rekenkundige operaties op getallen wordt intern het bericht getal verstuurd. Zo kunt u bijvoorbeeld een reeks maken die bij een rekenkundige operatie automatisch de som geeft:

som bij: ['getal'] doen: {
>> totaal := 0.
zelf elk: { :nummer :element totaal optellen: element. }.
<- totaal.
}.