การส่งค่าจากตาราง

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

ความต้องการที่พบบ่อยในโครงสร้างข้อมูลหลายอันคือการนำค่ากลับมาใช้ pairs() หรือ ipairs() สำหรับครึ่งหนึ่งขององค์ประกอบของตารางใด ๆ เช่นกุญแจหรือมูลค่าเพื่อค้นหาแ

ตัวอย่างใช้รายการลำดับเรือที่รอการซ่อมแซม ipairs() ใช้เพื่อการกลับสถานที่ของเรือในแถว


local shipToFind = "Void Racer"
-- เรือรอการซ่อมแซม
local waitingShips = {"Battle Sun", "Void Racer", "The Big Slow"}
-- รับสถานที่ในตำแหน่ง
local function getPlaceInLine(shipName)
for placeInLine, ship in ipairs(waitingShips) do
if ship == shipName then
return placeInLine
end
end
end
--พิมพ์สถานที่ในแถว
local placeInLine = getPlaceInLine(shipToFind)
print("Your place in line is " .. placeInLine)

ตัวอย่างการค้นหาพจนานุกรม

คุณเคยค้นหาสัตว์เลี้ยงที่หายไปในบ้านไปห้องโดยห้อง? ด้วยโค้ดของคุณเองสัญลักษณ์การค้นหาผ่านหนังสือชื่อเรื่องชื่อห้องที่มีสุนัขที่หายไปห้อง

  1. คัดลอกพจนาภาษาด้านล่างเพื่อให้เป็นบ้าน


    local house = {
    kitchen = "pile of Junk",
    livingRoom = "kitten",
    bedroom1 = "nobody there",
    bedroom2 = "puppy",
    }
  2. สร้างฟังก์ชันใหม่ที่มีชื่อว่า findPet() เพื่อค้นหาพจนานุกรม รวมปารามิเตอร์สำหรับพจนานุกรมที่จะค้นหาและมูลค่าที่ต้องการ

  3. ใช้ pairs() เพื่อซ้ำผ่านพจนารูปแบบ. ลองเขียนโค้ดของคุณเองก่อนที่จะตรวจสอบงานของคุณในแก้ไขด้านล่าง


    local function findPet(whereToSearch, searchFor)
    for place, value in pairs(whereToSearch) do
    end
    end
  4. เมื่อ for เลื่อนผ่านคํานวณจําเนียร์, ใช้ return เพื่อส่งกลับห้องที่สัตว์เลี้ยงถูกพบ.


    local function findPet(whereToSearch, searchFor)
    for place, value in pairs(whereToSearch) do
    if value == searchFor then
    return place
    end
    end
    end