变量名和逗号后下划线的用途是什么?

2024-10-04 07:26:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我发现这个Lua代码:

function displayName(name)
  name, _ = name:gsub("{", "\\{")
  return name
end

再说一遍:

function parsePath(path)
  if type(path) == "string" then path, _ = path:gsub("\\", "/") end
  return path
end

我理解代码的作用。。我不明白的是,变量名和赋值部分(=)之间有一个逗号下划线。。所以这个{}和这个{}

有人能给我解释一下那件事的意思吗

是不是name = name:gsub(....)还是..then path = path:gsub(...)都一样

那么为什么脚本是这样写的呢


Tags: path代码namestringreturniftypefunction
2条回答

我不是Lua方面的专家,但这种模式在其他编程语言(如Python)中使用。下划线表示“不使用的变量”。如果函数返回一个包含两个元素的数组,则需要执行此操作,否则将得到整个数组

在许多编程语言中_用于表示未使用的变量

这也适用于Lua。这是纯粹的风格惯例。你在Lua手册中找不到关于它的任何信息

luackeck是最常见的Lua静态代码分析器,它会为代码中存在未使用的变量提供警告。在这方面,它将忽略名为_的变量

Wouldn't be name = name:gsub(....) or ..then path = path:gsub(...) the same ?

在您的示例中,这实际上是不必要的

name, _ = name:gsub("{", "\\{")中有_的唯一原因是给出一个提示,该函数实际上返回两个值。通常你会把_放在一边

然而,如果您只对第二个返回值感兴趣,那么_, numReplaced = name:gsub("{", "\\{")是有意义的。如果不添加第一个未使用的变量,则无法获得该值

相关问题 更多 >