Lua1.0使用与研究-array

首先看一下array.lua的代码

$debug
a = @()
i=0
while i<10 do
 a[i] = i*i
 i=i+1
end

r,v = next(a,nil)
while r ~= nil do
 print ("array["..r.."] = "..v)
 r,v = next(a,r)
end


$debug

    --在lua中起什么作用,暂时不清楚 2012.08.16
a = @()
    --在lua中起什么作用,暂时不清楚,但是根据代码上下文,应该是定义了一个数组a
      2012.08.16
    --定义table的语法,Lua通过table来实现数组
    --在Lua中习惯上数组的下标从1开始,Lua的标准库与此习惯保持一致。
      因此如果你的数组下标也是从1开始你就可以直接使用标准库的函数,
      否则就无法直接使用
    
i=0
while i<10 do
 a[i] = i*i
 i=i+1
end
    --上面这个代码在非交互式模式下,是一个语句块,在交互模式下i=0应该是一个独立的
      语句块。这些概念我是在lua5.1手册看到。先不管 2012.08.16
    --实现了为数组a的赋值
    --需要仔细关注table的

r,v = next(a,nil)
    --next是一个什么函数?作用?2012.08.16
    --在代码里应该是返回数组a的索引和值,因为lua里function可以返回多个值。2012.08.16
    --next(a,nil)应改返回数组a的第一个索引以及第一个值。2012.08.16
    --lua5.1 11..1
      --且数组不必事先指定大小,大小可以随需要动态的增长
      --可以根据需要定义数组的下标从0,1或者任意其他的数值开始
    --next的实现在hash.c文件lua_next函数
    
print ("array["..r.."] = "..v)
    --首先..是一个连接符号,挺像c++,java里的多个字符串相加的效果。
    --如果连接符号左右是数字,数值,将转化为字符串。2012.08.16
    --比c里打印数值要简单,如何实现打印不同格式的数值呢?2012.08.16

貌似lua代码里不支持中英文混排,起码在lua1.0里是这样。


Lua1.0使用与研究-array_第1张图片


你可能感兴趣的:(java,c,function,table,lua)