lua指令碼如何去除時間限制,lua 指令碼如何實現迴圈一套動作至規定時間後關閉程式然後重新開啟。

2021-04-21 02:37:06 字數 2842 閱讀 4682

1樓:匿名使用者

你是說那方面的? lua本身沒有時間限制啊,

lua 指令碼如何實現迴圈一套動作至規定時間後關閉程式然後重新開啟。

2樓:匿名使用者

一直專注於lua問題回抄答已經好多年了bai

已經有無數人提出了lua定時的du問題 但我也zhi一直不回答

其實更希望的是提dao出問題的朋友門能先對lua有一個比較深的理解後再來提問題

類似功能不是無法實現 但是實現原理你們也最好去弄清楚一下

首先lua是一門很小的指令碼語言 因為很小(大概就200k) 所以大部分功能都沒有 只提供了最基本的庫和語法解釋等功能

所以 定時相關的函式 肯定就不在lua的範疇裡了

那這樣得怎麼實現定時的功能呢? lua有很強的擴充套件性 可以在它的宿主語言(一般是c/c++)上實現好相關的lua介面 然後供指令碼呼叫

所以 原理就是在你的宿主語言上實現好一個cfunction 然後開放給lua來實現

但是一般開發者 只負責寫指令碼這邊,而對宿主語言完全沒有接觸,甚至連lua的呼叫過程都不理解 所以相關問題也是無法解決的 因此 能不能實現定時的功能 完全依賴於你對宿主語言的控制程度

lua指令碼怎麼讓迴圈操作執行指定時間?

3樓:匿名使用者

最簡單的做法就是在迴圈中檢查時間是否超過6秒,超過就結束。比如下面**(專

自己在迴圈中加入你要執行的操屬作)

local start = os.time()while os.difftime(os.time(), start) < 6 do

-- your operation hereend

如何確定在使用lua指令碼的執行時間

4樓:司馬刀劍

參考bai方法如下:

local str1 = "12:36:28"

local str2 = "14:38:45"

local h1,m1,s1 = string.match(str1,"(%d+):(%d+):(%d+)")

local h2,m2,s2 = string.match(str2,"(%d+):(%d+):(%d+)")

local time1 = h1 * 3600 + m1 * 60 + s1

local time2 = h2 * 3600 + m2 * 60 + s2

print(time2 - time1)

得出du的是 相差

zhi多dao少秒 除專3600就是

多少小屬時啦

lua指令碼中,滿足一個條件後,立即結束函式,不再執行函式中下面的**,類似vba中的exit function,怎麼寫

5樓:匿名使用者

function fun()

if a > 5 then

return

else

print(a)

end只要用個return 就可以了

lua指令碼的幾個疑問

6樓:匿名使用者

關於dostring中的區域性變數 這裡剛好是有個特殊情況的

我用的luaforwindows直接執行的 沒dostring 就先用loadstring了

local a = 1

print(loadstring("a = 123")())

print(a,_g.a)

這裡a = 123執行時 不會給區域性變數a進行賦值操作,而是修改了全域性變數a

對於到底是區域性變數還是全域性變數的判斷 依據的是 使用這個變數的這個區域 在使用之前 是否有過區域性變數的宣告

比如a = 1

print(a)

local a = 2

print(a,_g.a)

這樣就能看到2個不同的a

而在function msg(x,y)中

是因為x和y是被當作實參傳過來的 函式裡的實參 在函式內部都是作為區域性變數來使用 所以xy是區域性而a是全域性

7樓:匿名使用者

a = dostring.....

dostring最後一個返回值,就是準備給a的。

c++繫結函式返回時,它只能且必須返回一個值,這個值通知lua,我返回了幾個值在堆疊裡。你不返回這個值的話,難道讓lua去猜你會返回幾個值?你這裡設了返回值個數後,lua才會給你分配保留適當的空間,不然你返回後,之前放的返回值就丟了。

dofile和dostring一樣,會先獲取原始檔或字串內容,然後編譯,再逐條執行**。

你說的多執行緒,我不明白你的意思,就不說了。

最後那個x和y當然是臨時的,而那個a,是全域性的了。

lua5.2和之前的版本不一樣了,「全域性」不是真正的全域性,而是當前環境的全域性,仔細去看看lua5.2的官方文件。

lua指令碼怎麼樣呼叫外部指令碼

8樓:中公優就業

若要bai呼叫外部lua指令碼du

,需要使用dofile。

這很zhi像c語言中

dao的 #include「」

用法:專dofile ("路徑")

***************===

--file:e:\lua1.lua

dofile ("hello.lua")

print(a)

***************===

--file: e:\hello.lua

a = 100

***************===

==輸出屬==100

我用lua指令碼寫程式時,出現了下面的錯誤 attempt t

錯誤已經寫的很明顯了 你使用了一個空值來索引一個table 比如 你執行一下這段 你就懂了 tab tab.size print tab.size.a tab.size nil print tab.size.a 第一次輸出nil 第二次就出現了和你一樣的錯誤 因為size 本身不是一個table 而...

lua怎麼反編譯,請教lua如何反編譯,或者指點一下luadec的用法,請不要複製回答問題。

在cmd中執行,跟上引數就可以了,假設我們的luadec放在c lua下,想要看到c test test.lua檔案的原始碼,那麼我們可以使用如下操作 1.開啟cmd 命令列視窗 2.在視窗中輸入如下命令 c lua luadec.exe d c test test.lua c test test ...

shell指令碼中如何跨指令碼呼叫其他指令碼中的函式

這個前提是在你指令碼執行過程中,其他指令碼也需要執行並呼叫,然後可以把函式放到環境變數中,再從指令碼中讀取環境變數 shell指令碼怎麼呼叫其他shell指令碼 在shell中要如何呼叫別的shell指令碼,或別的指令碼中的變數,函式呢?方法一 subscript.sh方法二 source subs...