Two ways of making functions in a dictionary: is there a difference?

moves = {}

function moves.Punch(param)
end

moves["Punch"] = function(param)
end

Are these both the same? Or are there some nuances between the two I should know:?

they are both the same way of assigning a function

makes no difference, but I would go for the first option, I don’t know why lol.

i do prefer it, but the way im doing things requires some names to have spaces so i have to use the second way

Using spaces in variable names or function names is bad practice, if you really need to separate them, use _ or -, but its your choice, do whatever.

i knew someone was gonna say this

i have a super automated system for what im doing which relies on naming certain things, so i need all the names to match up
when i name them in one place its used for everything from display to functions to abilities all that so its easier to just make it work with the default names than adjust everything