[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: [ANN] Lua 5.2.0 (work4) now available
- From: Quae Quack <quae@...>
- Date: Mon, 2 Aug 2010 09:21:45 +1000
On 2 August 2010 06:45, phlnc8 <phlnc8@gmail.com> wrote:
> On Sun, Aug 1, 2010 at 4:36 PM, Jim Whitehead II <jnwhiteh@gmail.com> wrote:
>
>> On 1 Aug 2010 20:31, "phlnc8" <phlnc8@gmail.com> wrote:
>>>> Probably something like this:
>>>>
>>>> local _ENV={}
>>>> function f1() ... end
>>>> function f2() ... end
>>>> ...
>>>> return _ENV
>>>>
>>>
>>> In that case, globals (builtins) cannot be used within definitions!?!
>>> Did I miss something?
>>
>> If you want to use something from the outer environment, you can store it
>> and use it. This is precisely the same as using module() without
>> package.seeall in Lua 5.1.
>>
> Do you mean redefining as local all the builtins used in the module?
>
> local table = table
> local string = string
> local print = print
> . . .
> . . .
> local _ENV={}
> . . .
>
I've always been in favour of localising the global functions you use;
but no, I believe they meant to use
local _ENV = setmetatable({},{__index=_G})
function foo()
end
return _ENV
Daurn.