Lua (forritunarmál)

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
Lua-Logo.svg
Kóðadæmi
print("Halló, heimur!")
Hannað afRoberto Ierusalimschy
Waldemar Celes
Luiz Henrique de Figueiredo
Kom fyrst út1993; fyrir 30 árum (1993)
HugbúnaðarleyfiMIT Hugbúnaðarleyfi
Skráarending.lua
Vefsíðawww.lua.org

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æmiBreyta

-- 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

TengillBreyta