Moduuli:Mallinetyokalut/ohje

Wikisanakirjasta

Tämä on ohjesivu moduulille Moduuli:Mallinetyokalut

Tässä ohjeessa kuvataan toiminnallisuutta jonka kehitys on vielä kesken. Sivu on tarkoitettu lähinnä kehityksen apuvälineeksi, ei yleiseen käyttöön.

Hyödyllisiä apufunktiota mallineiden parametrien käsittelyyn.

Funktiot[muokkaa]

ensimmainen_ei_tyhja[muokkaa]

ensimmainen_ei_tyhja(luettelo)

Palauttaa ensimmäisessä parametrissa annetusta luettelosta ensimmäisen arvon joka ei ole nil tai tyhjä merkkijono. Funktiota voi käyttää tutkittaessa mitä parametreja on annettu, kun tyhjän parametrin halutaan vastaavan antamatonta arvoa. Jos parametria ei ole annettu ollenkaan, on sen arvo nil. Jos sen kenttä on jätetty tyhjäksi, on sen arvo "".

Parametrit:

  1. luettelo arvoista

Esim.

ensimmainen_ei_tyhja{"", nil, "arvo1", "arvo2"}  -- palauttaa "arvo1"
ensimmainen_ei_tyhja{""}  -- palauttaa nil

numeroidut_parametrit[muokkaa]

numeroidut_parametrit(args, nimet)

Palauttaa annettua taulukkoa args vastaavan taulukon, jossa numeroidut parametrit on muutettu taulukon alkioiksi.

Parametrit:

  1. frame-olion args-kenttä
  2. Parametrit, joista tehdään luettelo vaikka niitä ei olisi numeroitu. Huom. Funktio tekee luettelon kaikista numerollisista parametreista, mutta koodin ymmärrettävyyden kannalta on tässä parametrissa hyvä luetella kaikki parametrinimet, joita halutaan myöhemmin käyttää.

Esim.

numeroidut_parametrit({ mon1 = "eka", mon2 = "toka" }, { "mon" })  -- palauttaa { mon = { "eka", "toka" } }

2. parametri on hyödyllinen, kun arvo voidaan antaa joko numerolla tai ilman (jolloin numeroton arvo vastaa 1:tä).

numeroidut_parametrit({ mon = "eka", mon2 = "toka" }, { "mon" })  -- palauttaa { mon = { "eka", "toka" } }

Jos tasoja on useampia, ne erotetaan pisteellä:

local args = { 
    ["p1"] = "何‎", 
    ["plat1.1"] = "eka", 
    ["plat1.2"] = "toka", 
    ["p2"] = "مايو", 
    ["plat2.1"] = "kolkki" 
}
numeroidut_parametrit(args, { "p", "plat" })  
-- Tulos: { p = { "何", "مايو" }, plat = { { "eka", "toka" }, { "kolkki" } }