Lua中为何函数内任何表达式使用…会令arg参数变为nil?
- 内容介绍
- 文章标签
- 相关推荐
本文共计584个文字,预计阅读时间需要3分钟。
函数`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分钟。
函数`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(包含表的内容, '表名')`。

