lua-users home
lua-l archive

Re: attempt to perform arithmetic on field '_income' (a table value)

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


Thus:
function tax:init (pIncome, pRate)
 self._income = pIncome
 self._rate = pRate
 end
2013年9月18日 Jayanth Acharya <jayachar88@gmail.com>:
> On Wed, Sep 18, 2013 at 6:05 PM, Dirk Laurie <dirk.laurie@gmail.com> wrote:
>>
>> 2013年9月18日 Chris Berardi <chris.berardi@pmcsystems.com>:
>> > Can someone kindly explain the reason why I see this error ?
>> > tax.init = function (pIncome, pRate)
>> > tax._income = pIncome
>> > tax._rate = pRate
>> > end
>> >
>> > tax:init(12200, 12)
>> >
>> >
>> >
>> > The way Lua handles OO, the call to tax:init(12200, 12) is syntactic
>> > sugar for
>> > tax.init(tax, 12200, 12). Therefore, tax._income is assigned tax and
>> > tax._rate
>> > is assigned what you think is pIncome and what you think is pRate is
>> > thrown
>> > away.
>> >
>> > Try changing the call to tax.init(12200, 12) or change the function
>> > definition
>> > to tax.init = function (self, pIncome, pRate).
>>
>> And change all the tax.xxx statements to self.xxx statements.
>>
> Thanks Dirk, but changing tax to self inside the functions, I get this
> error:
> attempt to index global 'self' (a nil value)

AltStyle によって変換されたページ (->オリジナル) /