Lua/輸出
< Lua
Lua的基礎內容及基本的調試方法,就是將一些數據輸出到控制台上。也就是說,在控制台上顯示輸出的內容。「輸出」與「返回」不同。
輸出方法
編輯Lua主要有腳本式和交互式兩種輸出方法。
腳本式
編輯在Lua中使用print(要輸出的內容)
(「print」函數)可以將數據的內容輸出到控制台上。通常使用的腳本式編程。腳本式編程的意思是完成一個完整的文件,然後顯示打印(不是打印機的打印)的內容。
原始碼 | 輸出的內容 |
---|---|
print(3) |
3 |
print(x) |
nil |
print({"a","b","c"}) |
table: 0x20ec8c0 (注意:這裏的後面一串數字通常是隨機生成的。舊版本的Lua只會輸出table。) |
print(function() return "p" end) |
function: 0x2137bf0 (注意:這裏的後面一串數字通常是隨機生成的。舊版本的Lua只會輸出function。) |
print("字符串") |
字符串 |
print(setmetatable({},{__tostring=function() return "字符串" end})) (註:該代碼比較複雜,涉及Lua/元表,若無法讀懂可忽略。) |
字符串 |
交互式
編輯交互式編程,指的是輸入一行就立即執行一行並返回結果。通常,輸入的內容自動有>
前綴,而輸出的內容沒有。
交互式編程中,要使返回的值打印在屏幕上[註 1],有以下三種方法:
- 使用print函數,這種方法比較自由,且可以用於代碼塊中。
>for i=1,3 do >>print(i) >end 1 2 3
- 以等號(
=
)開頭,後面接表達式。這種方法比較簡便。它會顯示表達式返回的值。注意,表達式不能是代碼塊。這種方法往往比print函數簡便,但是只適用於交互式編程。你每輸入一行,它就可以返回一行。你也可以利用交互式編程進行高效的練習或調試。>a=5 >=a 5
>=t nil >t=2 >=t 2
- 不以等號開頭,直接寫表達式[註 2]。需要注意的是,函數調用也可以視為表達式,雖然它是進行一個操作,但仍然很有可能返回值。print函數是不會返回值的。雖然table.insert、setmetatable等函數一般單獨使用,但對於交互式中,如果只有這個表達式,它仍然返回值,因此也會將值顯示在屏幕上。
>a nil >a={} >a table: 0x20ec8c0 >setmetatable(a,{}) table: 0x20ec8c0