Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
✓ ANSWER ACCEPTED

What's the difference between a local function and a regular function?

Even though this may be a stupid question, what's the difference? I never learned what the difference was.

For example:

local function printMessage(msg)
      print(msg)
end

printMessage('hi')

------------------------------------------------

function printMessage(msg)
      print(msg)
end

printMessage('hi')

They do the same exact thing..

1 answer

✓ Accepted answer

I'll quote my answer from this earlier question.

There is no such thing as a local function, actually. You are merely assigning variables that reference functions.

It's important to remember that functions are first-class values, and that all functions in Lua are anonymous (nameless). This code:

function name()

end

Is really sugar syntax (a nicer way of writing something else) for this:

name = function()

end

And that this code:

local function name()

end

Is really sugar syntax for this:

local name
name = function()

end

You might ask why it's not sugar syntax for this instead:

local name = function()

end

And the reason would be that you wouldn't be able to make recursive calls in the function if that were the case.

Again, functions are just like any other values in Lua. You can store them in variables, pass them to other functions, and so on, they're not special at all.

This discussion is preserved as it was. New answers, comments, and votes are closed.