我找到了这个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("\\", "/")
谁能给我解释一下那个东西的含义吗?
name = name:gsub(....)
或 ..then path = path:gsub(...)
不会相同吗?
那么为什么脚本要这样写呢?
最佳答案
在许多编程语言中,_
用于表示未使用的变量。
这也适用于Lua。这是纯粹的风格惯例。您在 Lua 手册中找不到任何相关内容。
luackeck,Lua 最常见的静态代码分析器,会在代码中存在未使用的变量时向您发出警告。在这方面,它将忽略名为 _
的变量。
Wouldn't be name = name:gsub(....) or ..then path = path:gsub(...) the same ?
在您的示例中,这实际上是不必要的。
在 name, _ = name:gsub("{", "\\{")
中包含 _
的唯一原因是给出一个提示:函数实际上返回两个值。通常您会保留_
。
如果您只对第二个返回值感兴趣,则 _, numReplaced = name:gsub("{", "\\{")
是有意义的。如果不添加第一个未使用的变量,您就无法得到它。
关于variables - 变量名和逗号后面的下划线的作用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67488493/