Lua:
การอ่านอาร์กิวเมนต์จากคำสั่งลำดับ
วิธีการ:
นี่คือภาพรวมของวิธีการดึงอาร์กิวเมนต์เหล่านั้นใน Lua:
-- บันทึกนี้เป็น 'greet.lua'
local name = arg[1] -- arg[1] คืออาร์กิวเมนต์บรรทัดคำสั่งตัวแรก
print("Hello, " .. (name or "stranger") .. "!")
เปิดเทอร์มินัลและรันมัน:
$ lua greet.lua LuaLearner
Hello, LuaLearner!
ไม่มีชื่อ? ไม่มีปัญหา:
$ lua greet.lua
Hello, stranger!
ลงลึก
Lua ทำให้มันง่ายดายด้วยตาราง arg
โลก. ทั่วไปมาแต่โบราณ (ดี, ตั้งแต่เกิดของ UNIX, อย่างน้อยที่สุด) ผู้คนได้ทำการอ่านอาร์กิวเมนต์บรรทัดคำสั่งในการเขียนโปรแกรม มันเป็นหนึ่งในการปรับแต่งที่สำคัญ
ใน Lua, arg
เป็นอาร์เรย์ที่มี argument บรรทัดคำสั่งทั้งหมด arg[0]
เป็นชื่อสคริปต์ และ arg[1]
ขึ้นไปคือ argument จริงๆ คุณสามารถหยิบมันทั้งหมดขึ้นมาด้วยลูปถ้าคุณรู้สึกว่ามันเก๋ไก๋:
for i = 1, #arg do
print("Argument " .. i .. ": " .. arg[i])
end
มีทางเลือกอื่นหรือไม่? แน่นอน มีไลบรารี่อยู่ภายนอกสำหรับการแยกวิเคราะห์อาร์กิวเมนต์ที่ซับซ้อน (เช่น Penlight
), แต่สำหรับหลายๆ กรณี, arg
ทำให้ผลได้อย่างไม่มีปัญหา
เรื่องของรายละเอียดในการใช้งาน, จำไว้ว่าอาร์เรย์ของ Lua เริ่มนับที่ 1 (พวกเขาเริ่มนับที่ 1) ไม่ใช่ 0 เหมือนภาษาอื่นๆ นั้นเป็นเหตุผลว่าทำไม arg[1]
เป็นอาร์กิวเมนต์ตัวแรกและไม่ใช่ arg[0]
ดูเพิ่มเติม
สำหรับผู้ที่ต้องการเรียนรู้เพิ่มเติม นี่คือข้อมูลเพิ่มเติม:
- Lua 5.4 Reference Manual บนตาราง
arg
: https://www.lua.org/manual/5.4/manual.html#6.1 - “Programming in Lua” (ฉบับที่ 4) สำหรับการเข้าใจพื้นฐานของ Lua อย่างมั่นคง: https://www.lua.org/pil/contents.html
- Penlight, ไลบรารี่ยูทิลิตี้ของ Lua ที่มีการแยกวิเคราะห์อาร์กิวเมนต์ที่ดีขึ้น: https://github.com/lunarmodules/Penlight