[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: How to properly initialize a module?
- From: Rob Hoelz <rob@...>
- Date: Tue, 6 Dec 2011 13:45:56 -0600
Responses are inline.
On Tue, 6 Dec 2011 11:17:12 -0800 (PST)
Ezequiel García <elezegarcia@yahoo.com.ar> wrote:
> --- El mar 6-dic-11, Rob Hoelz <rob@hoelz.ro> escribió:
>
> > De: Rob Hoelz <rob@hoelz.ro>
> > Asunto: Re: How to properly initialize a module?
> > Para: lua-l@lists.lua.org
> > Fecha: martes, 6 de diciembre de 2011, 16:41
> > That's kind of a neat idiom; you
> > could easily then do something like
> > this:
> >
> > local canvas = require 'canvas' '/dev/fb0'
> >
> > or even this:
> >
> > local canvas = require 'canvas' {
> > device = '/dev/fb0'
> > }
>
> I am confused about this. Is this valid syntax?
Yup! The first example is equivalent to the following:
local canvas = require('canvas')('/dev/fb0')
And the second:
local canvas = require('canvas')({ device = '/dev/fb0' })
>
> How would I implement from C side? What's the difference between
> require 'foo'.func() and require 'foo' 'bar' ?
"require 'foo'.func()" translates to something like this:
local m = require('foo')
m.func()
whereas "require 'foo' 'bar'" translates to this:
local m = require('foo')
m('bar')
You could implement my idiom from the C-side like this:
https://gist.github.com/1439633
-Rob
Attachment:
signature.asc
Description: PGP signature