我需要替换lua中的键的值,例如考虑一个表
t = {"book", "ball", "bank"}
在这里我需要更改"box"而不是"ball"的值.怎么做 ?
以前我试过找到一个关键值并改变,但它没有用!!!
for key, value in pairs(t) do
  if key == 2 then
    value = "box"
  end
end
但它没有用..如果有人知道替代方式,请给我建议?
我想知道如何在某种功能中使用lua将数组转换为数组
例如.FileToArray( "C:/file.txt")?
我知道我可以使用:var = io.open("file")Data = var:read()但它只返回第1行,而没有其他行.
任何人都知道如何解决这个或不同的方式?我是lua和文件系统的新手.
在Lua中,对任何数字使用类型函数总是返回'number'.是否有一个函数可以告诉您Lua解释器是否使用32位浮点数,64位双精度数,整数或其他数字类型?
我试着写一个这样的函数:
function numbertype()
  local rational = 5 / 2
  if rational == 2 then
    -- equals 2
    return 'int'
  else
    -- about 2.5
    return 'double' -- but could it be a 32 bit float or something else?
  end
end
print(numbertype())
它还无法检测到浮点数,双精度数和未知类型之间的差异.如何在Lua的解释器中查询Lua的数字类型是否等同于int,float或double?我希望它能用纯净的Lua工作.
如何在Lua中将表格设为只读?(具体来说,LuaInterface与Lua 5.1 for C#,但我认为这不会改变任何东西)我知道如何使用__index和__newindex,但这并不妨碍某人运行:
 math = nil,这可能会导致进一步的脚本错误地执行.
我目前的"保护"功能:
function protect(table) 
return setmetatable({}, { __index = table, 
__newindex = function(table, key, value) error("attempted to modify a read only table")         
end, __metatable = false }) end
math = protect(math)
math.sqrt = nil // successfully protected
math = nil // this is bad and can happen!
例:
player = {}
player.shape = {x = 0, y = 0, w = 50, h = 50}
Lua中是否有一个函数可以告诉我表player.shape所在的位置,所以我可以执行以下操作:
shape_a = player.shape
some_function(shape_a) = player
从表面上看,变量赋值和表构造函数做了类似的事情.那么为什么表构造函数被认为是"表达式"而变量赋值被认为是"语句"?
我有下表:
self.keytable = {}
self.keytable.rotate_right = false
self.keytable.rotate_left = false
self.keytable.thrust = false
self.keytable.brake = false
self.keytable.fire = false
我想遍历表并将每个值设置为false,但我必须错过Lua的一些细微差别.我没试过就试过以下内容:
for k,v in ipairs(self.keytable) do
    v = false
end
在此先感谢您的帮助!
我偶然发现了lua的奇怪行为.代码示例:
function foo()
    local t = {'a', 'b', 'c'}
    return unpack(t)
end
function bar()
    local t = {'x', 'y'}
    return unpack(t)
end
b = { foo(), bar() }
for k,v in pairs(b) do
    print(k,v)
end
此代码的结果是:
1   a
2   x
3   y
因此,foo()除第一个元素外,所有结果都被丢弃.问题是,为什么有些元素被丢弃了?我已经简要检查了lua 5.2手册,但我没有看到这种行为的解释.
背景:
我正在努力教自己Lua,我很难理解为什么一个表在其中包含数据时被认为是nil.任何人都可以为我分解为什么我从下面的代码片段中收到此错误消息?这是我的第一个程序之一,我真的需要在继续我的真实项目之前先了解这几个概念.谢谢!
错误信息:
C:\Users\<user>\Desktop>lua luaCrap.lua
lua: luaCrap.lua:7: attempt to call global 'entry' (a nil value)
stack traceback:
        luaCrap.lua:7: in main chunk
        [C]: ?
码:
--this creates the function to print
function fwrite (fmt, ...)
  return io.write(string.format(fmt, unpack(arg)))
end
--this is my table of strings to print
entry{
    title = "test",
    org = "org",
    url = "http://www.google.com/",
    contact = "someone",
    description = [[
                    test1
                    test2
                    test3]]
}
--this is to print the tables first value  
fwrite(entry[1])
--failed loop attempt to print …我来自Java并尝试用lua和love2d编写iPad应用程序.我很新,我总是得到这个错误:
Syntax error: main.lua:18: 'end' expected (to close 'function' at line 12) near 'elseif'
这是我的代码:
function setup()
i = 0
end
function draw()
if i == 0
then
background(0, 0, 0, 0)
i = i + 1
end
elseif i == 1
then
background(255, 0, 0, 0)
i = i + 1
elseif i == 2
then
background(0, 255, 0, 0)
i = i + 1
elseif i == 3
then
background(0, 0, 255, 0)
i = i + 1 …