variables - 变量名和逗号后面的下划线的作用是什么?

标签 variables lua

我找到了这个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/

相关文章:

javascript - 使用循环 javascript 声明多个变量

javascript - 对象内的函数导致错误

variables - 如何在awk中使用包含特殊符号的变量?

path - Lua 的 `require` 可以处理包含隐藏目录/句号的路径吗?

optimization - 如何为 Lua 5.1 构建反编译器?

php - 在新页面上将变量从 JavaScript 传递到 PHP

java - 在另一个类中调用一个类的变量

lua - 打印 Lua 中当前作用域可访问的所有局部变量

lua - Lua中表初始化的顺序

lua - 使用选定的键迭代表