【问题标题】:How to display 2D array in Lua如何在 Lua 中显示二维数组
【发布时间】:2015-09-09 20:55:56
【问题描述】:

这行得通:

mt = {}          -- create the matrix
    for i=1,5 do
     mt[i] = {}     -- create a new row
      for j=1,3 do
        mt[i][j] = j
        print(i,j)
      end
    end

但这不是

mt = {}          -- create the matrix
    for i=1,5 do
     mt[i] = {}     -- create a new row
      for j=1,3 do
        mt[i][j] = j
        print(i,j)
        print mt([i][j])
      end
    end

并给出错误

'=' expected near 'mt'

使用这个语句

print(i,j,mt([i][j]))

给出这个错误

unexpected symbol near '['

我确实读过这个帖子 How do I display array elements in Lua?

但我的问题是关于正确语法的更基本的问题。

【问题讨论】:

  • print mt([i][j]) 应该是print(mt[i][j])

标签: arrays lua


【解决方案1】:

问题是左括号应该紧跟在打印之后而不是在mt之后,您需要移动括号,导致该行的代码:

print(mt[i][j])

使完整的代码sn-p成为:

mt = {}          -- create the matrix
for i=1,5 do
 mt[i] = {}     -- create a new row
  for j=1,3 do
    mt[i][j] = j
    print(i,j)
    print (mt[i][j])
  end
end

你可能打了一个简单的错字,但如果没有,解释(你可能知道)是函数 print() 传递了参数 mt[i][j] mt(变量)也是参数的一部分。

【讨论】:

  • 谢谢。事实证明,LUA 不喜欢索引周围的括号。这失败了:print(i,j,(mt([i][j]))) 但这有效 print(i,j,(mt[i][j]))
  • mt([i][j]) 表示“调用存储在名为mt 的变量中的函数”,但由于遇到的第一个表索引运算符[] 没有要索引的表,因此出现语法错误。 Lua(not LUA)语法非常一致且易于学习。我强烈建议从www.lua.org 开始阅读基础知识。 Lua 5.0 版图书Programming in Lua 的全文在那里,值得花时间阅读。
猜你喜欢
  • 2012-02-05
  • 1970-01-01
  • 2013-12-27
  • 2011-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多