2010-02-01 4 views
3

Ecriture d'une fonction dans Lua, qui crée deux tables. Je veux que les tables soient affectées au nom de valeur avec un x ajouté, et un avec y ajouté. Par exemple, si name était line, cela créerait deux tables linex et liney, mais je ne sais pas comment le faire. Ce qui suit ne fonctionne évidemment pas (et est juste à des fins d'affichage) mais comment pourrais-je faire cela?Variables de table affectées dynamiquement?

function makelinep(x,y,minrand,maxrand,name,length) 
    name..x = {} 
    name..y = {} 

Plus tard j'espère accéder à "linex" et "liney" après que les valeurs ont été écrites.

Répondre

5

Si vous voulez ceux-ci dans l'espace de nom global que vous utilisez

_G[name..'x']={} 
_G[name..'y']={} 

Pour un module vous utiliseriez _M à la place de _G.

+0

Cela fonctionne parfaitement, je semble avoir du mal à insérer des valeurs dans la table, comment cela pourrait-il se faire? (Dans la même fonction) table.insert (nom .. "x", nombre, x) Ne fonctionne pas. Merci: D –

+1

nom .. "x" n'est pas une table mais juste une chaîne avec un nom de votre table. Comme dans l'exemple ci-dessus _G [nom .. 'x'] est la table donc la bonne syntaxe est table.insert (_G [nom .. 'x'], compte, x) –

+0

Ah, c'est logique! Merci beaucoup: D –

Questions connexes