3

Programming in Lua の 16.4 章を読んでいますが、最後の例で 1 つのことがわかりません:

  function newAccount (initialBalance)
      local self = {
        balance = initialBalance,
        LIM = 10000.00,
      }

  local extra = function ()
    if self.balance > self.LIM then
      return self.balance*0.10
    else
      return 0
    end
  end

  local getBalance = function ()
    return self.balance + self.extra() -- this line is the problematic one
  end

  ...

「extra」関数はどのようにして「self.extra」関数になったのですか?! 別の「自己」テーブルに接続するものは何も表示されません!

4

1 に答える 1

3

これは、本書の第 2 版では次のように修正されています。

local getBalance = function ()
  return self.balance + extra()
end
于 2012-08-31T21:41:25.307 に答える