讓我們開始我們的第一節課。 如果你是 Lua 的新手,你首先要做的一件事就是學習如何列印出一些東西(輸出)並接受使用者的輸入(輸入)。 這個基本的 I/O 很簡單,但對於初學者來說至關重要。 試想一下,當您正在創建遊戲並希望讓您的玩家輸入他們的名字,或者您想顯示誰是獲勝者的結果時。 現在,我向您介紹 Lua 中的基本 I/O 功能。
輸出:使用 print()
Lua 中最簡單的輸出形式是通過 print()
函數。
KaClass 團隊
通過使用此功能,您可以要求引擎將數據發送到標準輸出(通常是終端或主控台),這對於顯示消息、數位或變數非常有用。
有關如何使用的編碼示例 print()
print("Hello, KaClass!") -- Output: Hello, KaClass!
在此範例中,字串 "Hello, KaClass!"
將列印到螢幕上。
請注意,該 print()
函數會自動在輸出后添加換行符。
所以你可以試試,下一個輸出將出現在新行上。
如何列印多個值?
然後用逗號分隔它們?
local name = "Alice"
local age = 25
print("Name:", name, "Age:", age) -- Output: Name: Alice Age: 25
在這個例子中,我創建了兩個局部變數(將在下一章中討論 Lua 變數)並將其列印出來,以逗號分隔。 這很簡單。
下一個範例將類似,但這次我們將列印出簡單數學計算的結果。
範例:如何在 Lua 中列印計算結果?
您可以直接用於 print()
顯示算術運算的結果:
local x = 10
local y = 5
print("Sum:", x + y) -- Output: Sum: 15
記得自己嘗試一下!
輸入:使用 io.read()
接下來,讓我們繼續處理用戶的輸入。
我們可以簡單地使用函數 io.read()
。
使用該函數,您可以開始捕獲使用者的輸入。
當您在編碼編輯器和編譯器中試用它時,一旦您的程式到達調用 io.read()
,它將等待使用者鍵入某些內容。
然後使用者需要按“Enter”鍵才能繼續。
當然,您可以將使用者的輸入分配給變數以進行進一步處理。
讓我們看看下面的示例:
如何在 Lua 中接受使用者輸入?
假設我們想接受使用者名,然後向他們打招呼:
print("What is your name?")
local name = io.read() -- Reads input from the user
print("Hello, " .. name .. "!") -- Output: Hello, [User's Input]!
因此,在此示例中,代碼行 「print("What is your name?")
提示使用者輸入」。
然後 io.read()
等待使用者鍵入他們的實際名稱並按「Enter」。
最後,輸入存儲在變數中 name
(我保證在下一個教程中會向你解釋什麼是變數!
如何處理不同類型的輸入?
如果您自己嘗試過,您應該注意到預設情況下會
讀取一行文本(作為字元串),但有時您可能希望讀取數位或特定數據格式。
您需要做的是將參數傳遞給 io.read()
io.read()
.
讓我向您展示如何做到這一點:
讀取數位:如果您希望使用者輸入數位,請用作 "*n"
的參數
。
通過傳遞此參數,Lua 會將輸入視為一個數位,即 io.read()
print("Enter a number:")
local number = io.read("*n") -- Reads a number
print("You entered the number:", number)
閱讀單行:如果您想閱讀單行,則 use io.read("*l")
將使其成功。
讀取直到檔末尾:使用 io.read("*a")
可以讀取整個輸入,直到檔(或輸入流)的末尾。
這對於在處理文件處理時讀取大塊文本非常有用。
我們將在後面的章節中深入探討 Lua I/O 文件的處理。
您可以在此處跳轉到以下內容 :檔案 I/O。
範例:新增兩個數位 (輸入) 和列印 (輸出)
現在,讓我們將到目前為止學到的知識與以下示例相結合
print("Enter the first number:")
local num1 = io.read("*n") -- Read the first number
print("Enter the second number:")
local num2 = io.read("*n") -- Read the second number
local sum = num1 + num2
print("The sum is:", sum)
在這個 Lua 程式中,我們使用 向使用者請求兩個數位 io.read("*n")
。
然後我們添加數位並使用 顯示結果 print()
。
讓我們用不同的參數自己試試吧!
如何檢查使用者的輸入是否正確?
有時,您可能無法從使用者輸入中獲得預期的結果。
處理錯誤是程式設計中的關鍵過程之一。
由於需要某些類型的輸入,因此
驗證使用者輸入類型非常重要(對於數據類型,我們將在後面的章節中詳細討論)。 io.read()
例如,如果你需要一個數位,但使用者鍵入了一個字串,會發生什麼情況?
Lua 將引發錯誤。
這不是一件好事。 因此,您可以使用基本的錯誤檢查設計來確保程式能夠優雅地處理無效的輸入。 在下面的例子中,我通過使用 if-then-else 檢查輸入是否是有效數位來實現(你可以在這裡找到什麼是 Lua 條件檢查 )
print("Enter a number please:")
local input = io.read()
local number = tonumber(input)
if number then
print("You entered the number:", number)
else
print("Invalid input! Please enter a valid number.")
end
在這裡, tonumber()
如果輸入有效,則將其轉換為數位。
直觀地說,如果有問題,它會返回 nil
。
因此,程式可以相應地處理無效的輸入。
簡單的互動式 Lua 程式,如“Chatbot”
現在讓我們讓它更有趣,並構建一個交互性更強的 「chatbot」 範例。 當然,它不是一個 AI 聊天機器人,而只是結合了我們迄今為止學到的關於輸入和輸出的知識。 這個簡單的程式會嘗試詢問使用者的姓名和年齡。 接下來,Lua 程式會告訴他們五年後將有多大。
print("What is your name?")
local name = io.read()
print("How old are you?")
local age = io.read("*n") -- Read age as a number
local future_age = age + 5
print("Hello, " .. name .. "! In five years, you will be " .. future_age .. " years old.")
請注意,程式使用 io.read()
提示使用者輸入其名稱。
將輸入捕獲為字串後,它會詢問用戶的年齡,以確保 io.read("*n")
將輸入視為數位。
最後,Lua 程式會計算用戶的未來年齡,然後將其列印為友好消息。
您可以對其進行修改以使其更有趣!
結論
總而言之,瞭解 Lua 腳本中的標準輸入和輸出非常重要。
它允許您使 Lua 程式更具互動性。
使用 print()
for output 和 io.read()
for input,您可以創建引人入勝的腳本,這些腳本可以輕鬆地與其他玩家交互。
我希望您發現這些功能很容易學習。
我一開始就是要確保在應對即將到來的 Lua 程式設計挑戰之前掌握了這些第一步。
您可以隨意嘗試不同類型的數據。
在本章之後,一些學生可以開始創建簡單的計算機、測驗或基於文本的小型遊戲。
下期見!