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