Lua中为何函数内任何表达式使用…会令arg参数变为nil?

2026-06-05 07:404阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计584个文字,预计阅读时间需要3分钟。

Lua中为何函数内任何表达式使用…会令arg参数变为nil?

函数`tell(num, ...)`用于打印隐式表中的值。以下是对给定内容的简化

plaintext函数 tell(num, ...) 打印隐式表中的值:-- print(value of implicit table: , arg)select(1, arg)-- select(1, ...)endtell(12, 43, 12, 55)

为什么在表达式中使用`...`会导致`arg`的值没有,例如`with print(包含表的内容)`:

在SQL表达式中,使用`...`通常表示参数化的方式,用于传递多个参数。如果`arg`后面直接跟有`...`,而没有明确指定每个参数的值,那么`arg`的值将不会被具体化,导致其值未定义。这是因为`...`指示后续参数是连续的,但没有提供具体的参数值,所以`arg`无法确定其具体内容。

例如,`with print(包含表的内容)`中的`print`函数没有参数,因此`arg`的值是未定义的。要正确使用,应该为每个参数提供具体的值,如`with print(包含表的内容, '表名')`。

阅读全文

本文共计584个文字,预计阅读时间需要3分钟。

Lua中为何函数内任何表达式使用…会令arg参数变为nil?

函数`tell(num, ...)`用于打印隐式表中的值。以下是对给定内容的简化

plaintext函数 tell(num, ...) 打印隐式表中的值:-- print(value of implicit table: , arg)select(1, arg)-- select(1, ...)endtell(12, 43, 12, 55)

为什么在表达式中使用`...`会导致`arg`的值没有,例如`with print(包含表的内容)`:

在SQL表达式中,使用`...`通常表示参数化的方式,用于传递多个参数。如果`arg`后面直接跟有`...`,而没有明确指定每个参数的值,那么`arg`的值将不会被具体化,导致其值未定义。这是因为`...`指示后续参数是连续的,但没有提供具体的参数值,所以`arg`无法确定其具体内容。

例如,`with print(包含表的内容)`中的`print`函数没有参数,因此`arg`的值是未定义的。要正确使用,应该为每个参数提供具体的值,如`with print(包含表的内容, '表名')`。

阅读全文