Lua (forritunarmál)
Kóðadæmi | |
---|---|
print("Halló, heimur!")
| |
Hannað af | Roberto Ierusalimschy Waldemar Celes Luiz Henrique de Figueiredo |
Kom fyrst út | 1993 |
Hugbúnaðarleyfi | MIT Hugbúnaðarleyfi |
Skráarending | .lua |
Vefsíða | www.lua.org |
Lua er forritunarmál sem búið var til árið 1993 af Roberto Ierusalimschy, Luiz Henrique de Figueiredo og Waldemar Celes en þeir voru félagar í tölvutæknihópinum Tecgraf við Pontifical Catholic University í Rio de Janeiro í Brasilíu. Ár árunum 1977 til 1992 voru miklar takmarkanir á innflutningi vélbúnaðar og hugbúnaðar til Brasilíu og viðskiptavinir Tecgraf gátu ekki keypt innfluttan búnað og það varð til þess að Tecgraf hópurinn smíðaði eigin verkfæri frá grunni.
Lua er vinsælt í forritun á tölvuleikjum og það tekur skamman tíma að læra Lua. Forritunarumhverfið Codea er byggt á Lua. Leikir í Roblox eru gerðir í Lua. Lua er notuð í ýmis konar hugbúnaði öðrum en leikjum og má nefna að Lua er notað í tengslum við Mediawiki til að færa gögn úr Wikidata yfir í Wikipediagreinar.
Dæmi
[breyta | breyta frumkóða]-- Hér er dæmi sem sniður bæti
-- Við teljum hversu oft „bytes“ er deilanlegt með 1024
-- Þannig finnum við besta háttin
-- Undirforrit sem kallast „formatBytes“ og tekur tölu og svo sniðsstreng
local function formatBytes(bytes, formatStr)
formatStr = formatStr or "%s%s" -- Við gefum sjálfgefið gildi
local units = { "B", "KB", "MB", "GB", "TB" } -- Við virðum IEC hérna ekki
local timesDivisible = 1
-- Á meðan að við erum innan with mörkin á „units“ og „bytes“ er deilanlegt með 1024 höldum við áfram
while timesDivisible < #units and bytes >= 1024 do
bytes = bytes / 1024
timesDivisible = timesDivisible + 1
end
local bytesString
if bytes == math.floor(bytes) then -- Efa talan er heil þá viljum við ekki auka kommu
bytesString = ("%d"):format(bytes) -- Til dæmis: 50
else
bytesString = ("%0.2f"):format(bytes) -- Til dæmis 50.00
end
return formatStr:format(bytesString, units[timesDivisible])
end
print(formatBytes(500)) --> 500B
print(formatBytes(5000)) --> 4.88KB
print(formatBytes(1024 * 50, "%s %s")) --> 50 KB
print(formatBytes(1024 * 1024 * 1024)) --> 1GB