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

发布于 2024-12-22 20:57:59 字数 409 浏览 1 评论 0原文

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

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

为什么在第二种情况下参数被解释为表?

In one file, I have the following code:

module( "command" )

local Commands = { }

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

Add("internal", function ( ) end )

in another I have the following:

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

this results in the following output:

>internal
>table: a008247

Why is the argument interpreted as an table in the second case?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

最美的太阳 2024-12-29 20:57:59

因为您使用 : 而不是 . 调用它。当您调用这样的内容时:

command:Add(...)

这是语法糖:

command.Add(command, ...);

您的意思可能是 command.Add

Because you called it with : instead of .. When you call something like this:

command:Add(...)

That is syntactical sugar for:

command.Add(command, ...);

You probably meant command.Add.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文