2013-10-18 13 views
5

Sto cercando di arrivare a questo lavoro, ma non sono sicuro se Lua supporta questo tipo di variabiliGet Lua per stampare (functionname.variable)

function newUser(accountName, password) 
    accountName = accountName 
    password = password 
end 

testUser = newUser("testName" , "testPassword") 

print(testUser.password) 

fa il testUser.password lavoro con Lua?

+0

Perché stai cercando JS-style inizializzatori in Lua? –

risposta

5

newUser è una funzione, quindi testUser ottiene il valore di ritorno della funzione, ovvero nulla. Un modo semplice e diretto per risolvere il problema è quello di restituire una tabella:

function newUser(accountName, password) 
    local t = {} 
    t.accountName = accountName 
    t.password = password 
    return t 
end 

EDIT: O meglio, seguendo il vostro stile come @lhf suggerito:

function newUser(accountName, password) 
    return { accountName = accountName, password = password } 
end 
+1

Nello stile dell'OP può essere scritto come 'function newUser (accountName, password) return {accountName = accountName, password = password} fine'. – lhf