LibreOffice Basic

Típusok, típuskonstrukciók

Típusszerkezet

A LibreOffice Basic-ben az alapértelmezett típus a variant, ez minden fajta értéket tud tárolni. A változókat nem kötelező deklarálni, sem a típusukat megmondani, úgy viselkednek, ahogy használjuk őket, ez a program futása közben is változhat. Azonban, ha deklarációkor megadjuk a típusát, akkor csak a típus érték halmazából veheti fel az értékét. A nyelv automatikus konverziót valósít meg, ez általában csonkolást jelent.
A következő elemi típusok léteznek a nyelvben:

Tömb típus

A tömbök rugalmasan kezelhetők a nyelvben, például a következő módon deklarálhatunk egy 10 egész számot tároló tömböt:

dim tombom(10) as integer
Azonban se a tömb elemszámát sem a tömbben tárolt elemek típusát se kötelező megadni. A tömböt később át is méretezhetjük a redim paranccsal (ha deklarációkor nem adtuk meg a méretét, akkor használat előtt kötelező használni a redim parancsot). A tömböket alapértelmezetten 0-tól indexeli, de ez mindenegyes tömbnél külön megadható, hogy az indexhatár milyen értékek közt mozogjon, illetve modul szinten felül is definiálható. A következő parancs 1-re állítja minden olyan tömb kezdő indexét, ahol azt alapértelmezetten hagytuk:
Option Base 1
Több dimenziós tömbök is létrehozhatóak, és a dimenzió szám a VBA-val ellentétben itt nincs lekorlátozva.
Példák tömbök létrehozására:
dim inttomb(-10 to 10) as integer 'tömb indextartománya -10 és 10 közt van inttomb(-10) =2 inttomb(-2)=0 msgbox inttomb(-2) redim inttomb(2,10) as integer 'két dimenziós tömb inttomb(0,1)= 2 msgbox inttomb(0,1) redim inttomb(2,2,2) as integer 'három dimenziós tömb inttomb(1,1,1)=3 msgbox "3d-s: " & inttomb(1,1,1) redim inttomb(1,1,1,1,1,1,1,1,1,1_ ,1,1,1,1,1,1,1,1,1,1_ ,1,1,1,1,1,1,1,1,1,1_ ,1,1,1,1,1,1,1,1,1,1_ ,1,1,1,1,1,1,1,1,1,1_ ,1,1,1,1,1,1,1,1,1,1_ ,1,1,1,1,1,1,1,1,1,1_ ,1,1,1,1,1,1,1,1,1,1_ ,1,1,1,1,1,1,1,1,1,1_ ,1,1,1,1,1,1,1,1,1,1_ ,1,1,1,1,1,1,1,1,1,1_ ,1,1,1,1,1,1,1,1,1,1_ ) as integer '120 dimenziós tömb

Változó deklaráció

Nem kötelező a változókat deklarálni, az eljárások, függvények belsejében a dim kulcsszóval tehetjük meg. De a modulban is deklarálhatunk változókat szintén a dim kulcsszóval, ekkor mindegyik eljárás, függvény látja, de másik modulból nem elérhető, ugyanezt elérhetjük, ha itt private kulcsszóval deklaráljuk. Public vagy global kulcsszóval is deklarálhatunk változókat ekkor másik modulból is elérhető a változó. Kezdeti értékadásra csak konstansok esetén van lehetőségünk, ezeket a const kulcsszóval vezetjük be.