传递给函数的字符串,作为表格接收。

在一个文件中,我有以下代码:

module( "command" )

local Commands = { }

function Add( cmd, funccallback )
  print(cmd)
  Commands[ cmd ] = funccallback
end

Add("internal", function ( ) end )

在另一个文件中,我有以下内容:

command:Add("external", function( ) end )

这导致以下输出:

> internal
> table: a008247

为什么第二种情况中的参数被解释为一个表格?

原文链接 https://stackoverflow.com/questions/8650329

点赞
stackoverflow用户734069
stackoverflow用户734069

因为你使用了 : 而不是 . 当你像这样调用某个东西:

command:Add(...)

这是语法糖:

command.Add(command, ...);

你可能是想用 command.Add.

2011-12-28 00:18:38