日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LUA: lua基础.

發布時間:2023/12/15 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LUA: lua基础. 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

nil :它是一個類型且只有一個值nil.它的主要功能是區別于其他任何值.如果對一個全局變量賦值nil等同于刪除它.

條件測試中: LUA把 零值(0) 和 空字符串("") 當為true.

?

Lua版本unpack():

function unpack(theTable, index) index = index or 1; if theTable[index] then return theTable[index], unpack(theTable, index+1); end; end;

?

Lua版本iterator:

function iterator(theTable) local i = 0; return function() i = i+1; return theTable[i] end; end;tb = {10, 20, 30}; iter = iterator(tb); while true do local element = iter(); if element == nil then break; end; print(element); end;output: 10 20 30

?

Lua范圍for與iterator:

tb= {10, 20, 30};function iterator(theTable) local i = 0; return function() i = i + 1; return theTable[i]; end; end;for value in iterator(tb) do print(value); end;

?

Lua版本具有復雜狀態的iterator:

local iterator;function allWords() local state= {line = io.read(), pos = 1}; return iterator, state; end;function iterator(state) while state.line do local s, e = string.find(state.line, "%w+", state.pos); if s then state.pos = e + 1; return string.sub(state.line, s, e); else state.line = io.read(); state.pos = 1; end; end; return nil; end;local itr, sta = allWords(); print(itr(sta));

?

Lua版本協程:

function receive(prod) --接受數據. local status, value = coroutine.resume(prod); return value; end;function send(x) --發送數據. coroutine.yield(x); end;function producer() --生產者 return coroutine.create(function() while true dolocal x = io.read();send(x);endend)endfunction filter(prod) --過濾 return coroutine.create(function() --創建一個協程for line = 1, math.huge dolocal x = receive(prod);x = string.format("%5d %s", line, x);send(x);endend)endfunction consumer(prod) while true do local x = receive(prod) io.write(x, "\n"); end end

?

Lua版本協程iterator:

function permgen(array, size) size = size or #array; if size <= 1 thencoroutine.yield(array);elsefor i=1, size do array[size], array[i] = array[i],array[size]; permgen(array, size-1); array[size], array[i] = array[i],array[size]; end end endfunction printResult(array) for index, value in ipairs(array) do io.write(array[index], " "); end io.write("\n"); endfunction permutations(array) local co = coroutine.create(function() permgen(array) end) return function() local code, result = coroutine.resume(co); return result; end endfor value in permutations({1, 2, 3}) do printResult(value); end

?

轉載于:https://my.oschina.net/SHIHUAMarryMe/blog/873420

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的LUA: lua基础.的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。