Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Lua 初学者卢阿,阵法_Lua - Fatal编程技术网

Lua 初学者卢阿,阵法

Lua 初学者卢阿,阵法,lua,Lua,我的代码中第2行的用途是什么 local table = {["First"] = 1, ["Second"] = 2, ["Third"] = 3} for key, value in pairs(table) do print(key) end 结果------------- 这句话的目的是什么,“对于键,成对的值(表)是什么?” 打印(钥匙)? 我想知道为什么它是必要的。正如其他人在评论中所建议的那样,你真的应该从阅读Lua中的编程开始。它将解释这一点以及更多,如果你想学习Lu

我的代码中第2行的用途是什么

local table = {["First"] = 1, ["Second"] = 2, ["Third"] = 3}

for key, value in pairs(table) do
    print(key)
end
结果-------------

这句话的目的是什么,“对于键,成对的值(表)是什么?” 打印(钥匙)?
我想知道为什么它是必要的。

正如其他人在评论中所建议的那样,你真的应该从阅读Lua中的编程开始。它将解释这一点以及更多,如果你想学习Lua,它确实是一个完美的起点

那么,至于它做什么呢 给我一张这样的桌子

local tab = {first = 1, second = 2, third = 3}
for key, value in pairs(tab) do
  print(key .. ": " .. tostring(value))
end
通常对表中的所有键值对进行迭代的方式如下

local tab = {first = 1, second = 2, third = 3}
for key, value in pairs(tab) do
  print(key .. ": " .. tostring(value))
end
这将循环表中的三个值
first=1
second=2
,等等。 对于每一对,将
key
设置为表键,将
value
设置为其值。然后在设置了这些变量的情况下执行
do
end
之间的代码

因此,上面的示例将打印以下内容:

first: 1
second: 2
third: 3
do
  local f, state, iterator = next, tab, nil -- this is what's returned by pairs
  while true do
    local key, value = f(state, iterator)
    if key == nil then break end
    iterator = key
    print(key, value) -- This is the body of our for loop
  end
end
它是如何工作的? 这有点复杂;首先,让我们看看
实际返回的是什么:

> t = {}
> print(pairs(t))
function: 68f18400    table: 0066b1d8    nil
它作为第二个参数返回的表与我们传入的表相同

pairs
返回的函数是一个函数,给定一个表和一个键,它返回表中的下一个键,顺序未知,但从不重复键

您可以在命令行上轻松确认这一点

> print(t)
table: 0066b1d8
> print(next)
function: 68f18400
然后,Lua将for循环转换为如下内容:

first: 1
second: 2
third: 3
do
  local f, state, iterator = next, tab, nil -- this is what's returned by pairs
  while true do
    local key, value = f(state, iterator)
    if key == nil then break end
    iterator = key
    print(key, value) -- This is the body of our for loop
  end
end

正如其他人在评论中所建议的那样,您应该从阅读Lua编程开始。它将解释这一点以及更多内容,如果您想学习Lua,它确实是一个完美的起点

那么,至于它做什么呢 给我一张这样的桌子

local tab = {first = 1, second = 2, third = 3}
for key, value in pairs(tab) do
  print(key .. ": " .. tostring(value))
end
通常对表中的所有键值对进行迭代的方式如下

local tab = {first = 1, second = 2, third = 3}
for key, value in pairs(tab) do
  print(key .. ": " .. tostring(value))
end
这将循环表中的三个值
first=1
second=2
,等等。 对于每一对,将
key
设置为表键,将
value
设置为其值。然后在设置了这些变量的情况下执行
do
end
之间的代码

因此,上面的示例将打印以下内容:

first: 1
second: 2
third: 3
do
  local f, state, iterator = next, tab, nil -- this is what's returned by pairs
  while true do
    local key, value = f(state, iterator)
    if key == nil then break end
    iterator = key
    print(key, value) -- This is the body of our for loop
  end
end
它是如何工作的? 这有点复杂;首先,让我们看看
实际返回的是什么:

> t = {}
> print(pairs(t))
function: 68f18400    table: 0066b1d8    nil
它作为第二个参数返回的表与我们传入的表相同

pairs
返回的函数是一个函数,给定一个表和一个键,它返回表中的下一个键,顺序未知,但从不重复键

您可以在命令行上轻松确认这一点

> print(t)
table: 0066b1d8
> print(next)
function: 68f18400
然后,Lua将for循环转换为如下内容:

first: 1
second: 2
third: 3
do
  local f, state, iterator = next, tab, nil -- this is what's returned by pairs
  while true do
    local key, value = f(state, iterator)
    if key == nil then break end
    iterator = key
    print(key, value) -- This is the body of our for loop
  end
end

开始阅读“Lua中的编程”—关于Lua的最佳教程……第一版甚至可以在网上免费获得!实际上,第2行是空的。数组在Lua中是一个外来概念。Lua表是计算机科学术语的词典。Lua参考手册也是学习的好地方。开始阅读“Lua中的编程”“-关于Lua的最佳教程。。。第一版甚至可以在网上免费获得!实际上,第2行是空的。数组在Lua中是一个外来概念。Lua表是计算机科学术语词典。Lua参考手册也是一个学习的好地方。谢谢Dark,我感谢你抽出时间帮助我:)谢谢Dark,我感谢你抽出时间帮助我:)