Lua-sheriffen, del 7 – Inbyggda bibliotek

Nu börjar det sannerligen ta sig, detta!

Lua-sheriffen

Förra gången gick vi igenom aritmetik och logik. Den här gången ska vi istället titta lite på inbyggda kodbibliotek man kan använda sig av! Vi kör igång direkt! 😉

Rubrikerna är klickbara och leder till Lua-users.org som har väldigt bra material. Vi kommer inte gå igenom allt här, utan titta på de funktioner jag bedömer är mest användbara.

Math

Ett matte-bibliotek är helt oumbärligt för en flitig programmerare. Math innehåller bland annat trigonometriska funktioner, avrundning och min/max för att hitta högsta eller lägsta värde i en mängd:

math.sin / math.cos / math.tan / math.asin … – Trigonometriska funktioner. Dessa arbetar i radianer, inte i grader.

math.rad / math.deg – Omvandlar från grader till radianer, respektive radianer till grader.

math.floor / math.ceil – Avrundar nedåt respektive uppåt till närmaste heltal.

math.random – Returnerar pseudoslumptal. Ett anrop utan argument returnerar ett flyttal mellan 0-1. Ett heltal ”x” som argument returnerar ett slumptal i intervall 1-x. Två heltalsargument returnerar ett slumptal i intervallet mellan de två talen.

math.sqrt – Returnerar roten ur talet man skickar in som argument. Roten ur 4 är exempelvis 2, eftersom 2*2 = 4.

I/O

Matematik i all ära, men vad har man för nytta av beräkningar om man inte kan hämta in invärden, eller för den delen skriva ut resultat?

I/O-biblioteket möjliggör inläsning och utskrift av data, från/till filer och prompten. Här går vi kort igenom ”den simpla modellen”, där man arbetar med en upp till en inström och en utström. För mer avancerade program kan man behöva använda ”den kompletta modellen”.

 io.input / io.output – Den enkla modellen har stdin och stdout som inmatning och utmatning. Detta kan man ändra med dessa kommandon, exempelvis genom att istället specificera ett filnamn.

io.read – Returnerar data från specificerad input. Olika argument kan ges för att specificera processen, exempelvis ”*a” för att läsa in hela filen eller ”*l” för nästa rad (utan radbrytningen).

io.write – Skriver angiven data till output. Flera strängar kan skickas in med kommatecken mellan. Denna funktion påminner om print(), men med skillnaden att den inte lägger till några tecken som t.ex. tab eller radbrytning. Den omvandlar ej heller data automatiskt med tostring(), som print gör.

Andra bibliotek

Utöver dessa finns också några andra bibliotek av intresse som jag inte tänkte gå närmare inpå i detta inlägg (några har vi redan tittat lite på):

string – funktioner för att modifiera strängar, mönstermatchning med mera.

table – modifierar tables, exempelvis genom konkatenering.

os – ett bibliotek med funktioner relaterade till operativsystemet, som datum, tid, externa anrop, språk med mera.

Så vad har vi lärt oss idag?

  • Att det finns en hel del funktionalitet inbyggd i språket
  • Var man kan leta för att få reda på mer om detta

Inget tungviktsinlägg idag inte! Nästa gång ska vi börja med något roligare, jag undrar vad…. 🙂

Kommentera