ผ่านสิ่งนี้เป็นอาร์กิวเมนต์แรก:
C=("").char;_G[C(112,114,105,110,116)](C(72,101,108,108,111,44,32,87,111,114,108,100,33))
สมมติว่ารหัสต้นฉบับอยู่ในไฟล์tehtmi.lua
ให้รัน (ใน bash หรือ shell ที่คล้ายกัน):
lua tehtmi.lua 'C=("").char;_G[C(112,114,105,110,116)](C(72,101,108,108,111,44,32,87,111,114,108,100,33))'
มันใช้งานได้กับ Lua 5.3 ซึ่งเป็นสิ่งที่ TIO ใช้ดังนั้นทำไมคุณไม่ลอง ลองออนไลน์ ? ฉันยังไม่ได้ทดสอบเกี่ยวกับการใช้งานที่ใช้แกน "Lua 5.1" ของ PUC-Rio (เพราะฉันไม่สามารถหาข้อมูลใด ๆ ได้) แต่โซลูชันของฉันก็อาจใช้งานได้เช่นกัน
อย่างไร?
มันรันอาร์กิวเมนต์แรกเป็นรหัส แต่ถ้ามันมีน้อยกว่า 5 ตัวอักษรตัวเล็ก
print("Hello, World!")
เคล็ดลับคือการวิ่ง วิธีนี้สามารถใช้คือการใช้อีก_G["print"]("Hello, World!")
ซึ่งใช้สตริง
แต่เราไม่สามารถใช้สตริงได้โดยตรงเนื่องจากข้อ จำกัด จำนวนตัวพิมพ์เล็กอย่างไรก็ตามคุณสามารถเรียกใช้("").char
เพื่อรับฟังก์ชั่นstring.char
ที่สามารถแปลงจากชุดไบต์เป็นสตริง ฉันกำหนดให้ตัวแปรตัวพิมพ์ใหญ่ (ดังนั้นเราจึงไม่ถึงขีด จำกัด ) ดังนั้นเราจึงสามารถใช้มันเพื่อสร้างทั้งสตริงprint
และHello, World!
สตริงที่สามารถใช้ได้เหมือนด้านบน