Lua

Aus Info-Theke
Version vom 30. Oktober 2020, 10:50 Uhr von Hamatoma (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „= Links = * [https://www.lua.org/pil/1.3.html lua.org] = Kommentar, Litterale und Syntax = <source lang="lua"> -- Kommentar -- Blockkommentar -- -- Stri…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Links

Kommentar, Litterale und Syntax

-- Kommentar
-- [[
Blockkommentar
-- ]]
-- String-Delimiter " und ' sind gleichwertig
a = "abc" .. 'def'
bool = true or false
true_value = '' or 0 or anyThingButFalse()
false_value = nil or false
bool2 = not bool

Statements

-- Assignments:
a = 3
-- Ersatz für cond ? alt1 : alt2:
val = cond and alt1 or alt2

-- comment
if a == "a" and b ~= "b" or not testIt() then
  local c = a .. "Hi"
elseif c < 2 then
  print('Hi')
end
while x < 3 do
  print(x)
end
repeat
  do_it(1)
until test_it(b)
-- Auswertung der 3 Parameter von for ist einmalig!
for ii=start,end,step do
  print(ii)
end
for ii=0,12 do
  print(ii)
  if ii==stopper then
    break
  end
end
-- print all values of array `a'
for i,v in ipairs(a) do print(v) end

Typen

int

-- automatische Wandlung von String:
ix = "4" + ix2

String

a = "hi " .. b .. "!"
-- Suche
start,end = string.find(heap, needle, startIx, plain)
i1,i2 = string.find("long sentence with words", "o")
-- returns 2, 2
found = string.match("long sentence with words", "o")
-- returns "o2
-- implizit

Tables

  • Alle zusammengesetzten Objekte (Arrays, Lists...) in Lua sind Tables:
-- Assoziatives Array:
a = { ['name'] = 'Jonny', ['email'] = 'a@b.c' }
if a['name'] then print("name found!") end

Arrays

arr = { 1, 2, 3 }
-- der Startindex ist normalerweise 1, muss aber nicht sein:
a = {}
for i=-5, 5 do
      a[i] = ii + 100
end
if a[-5] ~= 100 - 5 then
  error("wrong")
end
-- 2-dimensionales Array:
mt = {}          -- create the matrix
for i=1,N do
  mt[i] = {}     -- create a new row
  for j=1,M do
    mt[i][j] = 0
  end
end

Listen

-- Start:
list = nil
-- Erster Eintrag:
list = {next = list, value = 99}
-- Suchen:
local l = list
while l do
  print(l.value)
  l = l.next
end