AndersH
AndersH

Reputation: 818

Why does Lua default to global variables?

My favourite language these days is Lua. I have only one issue with it, why on earth is its default behaviour that variables in functions are global? In the similar language Icon there is a keyword "global" that is used when one really wants to use a global instead of the natural behaviour to default to local (I was bitten by this again five minutes ago). I would feel better about this if somebody could tell me the rational behind it (like the scoping difficulties that I know cause the absence of a "continue" keyword in Lua).

Upvotes: 22

Views: 6525

Answers (1)

lhf
lhf

Reputation: 72412

See Why aren't variables locally scoped by default? in the Lua uFAQ.

It certainly feels easy to only explicitly declare globals when they are in a local context. The short answer is that Lua is not Python, but there are actually good reasons why lexically-scoped local variables have to be explicitly declared. See the wiki page.

Upvotes: 18

Related Questions