Can someone kindly explain the reason why I see this error ?
[code] tax = { _income = 0, _rate = 0, _tax = 0 }
tax.init = function (pIncome, pRate)
tax._income = pIncome tax._rate = pRate end
tax:init(12200, 12)
print(tax:getIncome(), tax:getRate()) print(tax:getTax())
[/code] [error] >lua -e "io.stdout:setvbuf 'no'" "13.lua" table: 0028CA00 12200 lua: 13.lua:30: attempt to perform arithmetic on field '_income' (a table value)
stack traceback:
13.lua:30: in function 'getTax' 13.lua:36: in main chunk [C]: ? >Exit code: 1 [/error]
When you use ":" to call a function, Lua adds the table as the first argument to the function. So:
tax:init(12200, 12)
Actually calls init() as follows: init(tax, 12200, 12)
And of course that stores the 'tax" table in _income, and you are on your way to trying to do math on a table, hence the error.
--Tim
|