目前分類:LUA (4)

瀏覽方式: 標題列表 簡短摘要

7.1 – Iterators and Closures

function list_iter (t)----------------------------------factory(工廠?)
      local i = 0
      local n = table.getn(t)--------------------------回傳總元素個數
      return function ()--------------------------------無名氏函式(Closure)
               i = i + 1
               if i <= n then return t[i] end
      end
end
 
t = {10, 20, 30}
iter = list_iter(t)    -- creates the iterator
while true do
      local element = iter()   -- calls the iterator
      if element == nil then break end
      print(element)
 end
 
1.以上會輸出10 20 30
2.LUA的陣列好像從1開始算,不像C,陣列從0開始算。
 
等價寫法
t = {10, 20, 30}
for element in list_iter(t) do
      print(element)
end
這裡稍微複習一下 4.3.5 – Generic for (Generic = 通用)
-- print all values of array `a'---------------------------將a陣列的值全輸出 ipairs
    for i,v in ipairs(a) do print(v) end
-- print all keys of table `t'
    for k in pairs(t) do print(k) end----------------------將a陣列的 索引 全輸出 pairs
範例:
days = {"Sunday", "Monday", "Tuesday", "Wednesday",
            "Thursday", "Friday", "Saturday"}
revDays = {}
for i,v in ipairs(days) do
      revDays[v] = i
end
結果會是
 revDays = {["Sunday"] = 1, ["Monday"] = 2,------------索引是v,值是i。for i,v in ipairs()的寫法很容易顛倒
                ["Tuesday"] = 3, ["Wednesday"] = 4,
                ["Thursday"] = 5, ["Friday"] = 6,
                ["Saturday"] = 7}
 ? ipairs()是回傳(值,索引) ; pairs()是回傳(索引,值)

7.2 – The Semantics of the Generic for

Semantics = 語意

abcdefg 發表在 痞客邦 留言(0) 人氣()

筆記模式

================================================

abcdefg 發表在 痞客邦 留言(0) 人氣()

一般來說

最好是用Lua(Command Line)的選項練習才是

abcdefg 發表在 痞客邦 留言(0) 人氣()

 

Lua的官網http://www.lua.org/home.html

abcdefg 發表在 痞客邦 留言(0) 人氣()