คำถามติดแท็ก lua

Lua เป็นภาษาสคริปต์ที่มีประสิทธิภาพรวดเร็วน้ำหนักเบาและฝังตัวได้ พิมพ์แบบไดนามิกรันโดยการตีความ bytecode และมีการรวบรวมขยะอัตโนมัติ ความเร็วเป็นหนึ่งในสาเหตุหลักที่ชุมชนแมชชีนเลิร์นนิงใช้กันอย่างแพร่หลาย มักเรียกว่า "ภาษาส่วนขยายที่ขยายได้"

12
สตริง Lua ถึง int
ฉันจะแปลงสตริงเป็นจำนวนเต็มใน Lua ได้อย่างไร ฉันมีสตริงเช่นนี้: a = "10" ฉันต้องการให้แปลงเป็น 10 จำนวน
183 lua 

3
ความแตกต่างระหว่าง . และ: ใน Lua
ฉันสับสนเกี่ยวกับความแตกต่างระหว่างฟังก์ชั่นการโทรผ่าน.และผ่าน: > x = {foo = function(a,b) return a end, bar = function(a,b) return b end, } > return x.foo(3,4) 3 > return x.bar(3,4) 4 > return x:foo(3,4) table: 0x10a120 > return x:bar(3,4) 3 กำลัง:ทำอะไรอยู่?
174 function  lua 

16
แยกสตริงใน Lua หรือไม่
ฉันต้องแยกสตริงอย่างง่าย ๆ แต่ดูเหมือนจะไม่มีฟังก์ชั่นสำหรับเรื่องนี้และวิธีที่ฉันทดสอบด้วยตนเองดูเหมือนจะไม่ทำงาน ฉันจะทำอย่างไร
160 string  lua 

5
เรียงลำดับคะแนนตามเข็มนาฬิกาหรือไม่
กำหนดอาร์เรย์ของ x, y คะแนนฉันจะจัดเรียงคะแนนของอาร์เรย์นี้ตามลำดับตามเข็มนาฬิกา (รอบจุดศูนย์กลางเฉลี่ยโดยรวมของพวกเขา) ได้อย่างไร เป้าหมายของฉันคือการส่งคะแนนไปยังฟังก์ชั่นการสร้างบรรทัดเพื่อจบลงด้วยสิ่งที่ดูค่อนข้าง "แข็ง" เท่าที่จะเป็นไปได้โดยไม่ต้องมีการตัดกัน สำหรับสิ่งที่คุ้มค่าฉันกำลังใช้ Lua แต่โค้ดปลอมใด ๆ จะได้รับการชื่นชม อัปเดต:สำหรับการอ้างอิงนี่คือรหัส Lua ตามคำตอบที่ยอดเยี่ยมของ Ciamej (ไม่ต้องใส่คำนำหน้า "แอพ" ของฉัน): function appSortPointsClockwise(points) local centerPoint = appGetCenterPointOfPoints(points) app.pointsCenterPoint = centerPoint table.sort(points, appGetIsLess) return points end function appGetIsLess(a, b) local center = app.pointsCenterPoint if a.x >= 0 and b.x < 0 …

11
ทำไม Lua ถึงไม่มีคำสั่ง“ ต่อ”?
ฉันติดต่อกับ Lua เป็นอย่างมากในช่วงไม่กี่เดือนที่ผ่านมาและฉันชอบคุณสมบัติส่วนใหญ่ แต่ฉันก็ยังขาดอะไรบางอย่างอยู่: ทำไมถึงไม่มีcontinue? มีวิธีแก้ปัญหาอะไรบ้าง

7
วิธีรับจำนวนรายการในตาราง Lua
ดูเหมือนคำถาม "ให้ฉันใช้ Google ให้คุณ" แต่ฉันไม่สามารถหาคำตอบได้ ตัว#ดำเนินการLua จะนับเฉพาะรายการที่มีคีย์จำนวนเต็มและทำเช่นนั้นtable.getn: tbl = {} tbl["test"] = 47 tbl[1] = 48 print(#tbl, table.getn(tbl)) -- prints "1 1" count = 0 for _ in pairs(tbl) do count = count + 1 end print(count) -- prints "2" ฉันจะรับจำนวนรายการทั้งหมดโดยไม่นับได้อย่างไร
132 lua 

8
เหตุใดอาร์เรย์ Lua (ตาราง) จึงเริ่มต้นที่ 1 แทนที่จะเป็น 0
ฉันไม่เข้าใจเหตุผลเบื้องหลังการตัดสินใจในส่วนนี้ของ Lua เหตุใดการจัดทำดัชนีจึงเริ่มต้นที่ 1 ฉันได้อ่าน (เช่นเดียวกับคนอื่น ๆ ) กระดาษที่ยอดเยี่ยมนี้ สำหรับฉันดูเหมือนว่าเป็นมุมแปลก ๆ ของภาษาที่น่าเรียนรู้และเขียนโปรแกรมมาก อย่าเข้าใจว่าฉันผิด Lua ยอดเยี่ยมมาก แต่ต้องมีคำอธิบายที่ไหนสักแห่ง สิ่งที่ฉันพบส่วนใหญ่ (บนเว็บ) เป็นเพียงการบอกว่าดัชนีเริ่มต้นที่ 1 หยุดเต็ม มันน่าสนใจมากที่จะอ่านสิ่งที่นักออกแบบพูดเกี่ยวกับเรื่องนี้ โปรดทราบว่าฉันเป็นมือใหม่ใน Lua ฉันหวังว่าฉันจะไม่พลาดสิ่งที่ชัดเจนเกี่ยวกับตาราง
125 arrays  lua  lua-table 

8
ความแตกต่างเล็กน้อยระหว่าง JavaScript และ Lua [ปิด]
ปิด . คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เน้นไปที่ปัญหาเดียวโดยแก้ไขโพสต์นี้เท่านั้น ปิดให้บริการเมื่อปีที่แล้ว ปรับปรุงคำถามนี้ ฉันชอบ JavaScript มันดูหรูหรามาก (ลองนึกภาพเสียงอันเงียบสงบของแฟนบอย lovestruck ที่กำลังถอนหายใจอยู่เบื้องหลัง) เมื่อเร็ว ๆ นี้ฉันได้เล่นกับ Lua ผ่านlöve2d framework (ดีมาก!) - และฉันคิดว่า Lua ก็ยอดเยี่ยมเช่นกัน อย่างที่ฉันเห็นสองภาษานั้นคล้ายกันมาก มีความแตกต่างที่ชัดเจนเช่น วากยสัมพันธ์ โดเมนปัญหา ห้องสมุด ประเภท (บิต) แต่อันไหนละเอียดกว่ากัน? มีอะไรที่ตัวเข้ารหัส JavaScript จะยอมรับว่าทำงานใน Lua แตกต่างกันเล็กน้อยหรือไม่? มีข้อผิดพลาดใด ๆ ที่อาจไม่ชัดเจนสำหรับผู้มีประสบการณ์ของภาษาหนึ่งที่พยายามใช้อีกภาษาหนึ่งหรือไม่? ตัวอย่างเช่นใน Lua อาร์เรย์และแฮชจะไม่แยกจากกัน (มีเฉพาะตาราง) - ใน JavaScript เป็นอาร์เรย์ที่เป็นตัวเลขและวัตถุที่แฮช นี่คือหนึ่งในความแตกต่างที่ชัดเจนมากขึ้น …
121 javascript  lua 

8
วิธีที่มีประสิทธิภาพที่สุดในการตรวจสอบว่าตาราง Lua ว่างเปล่า (ไม่มีรายการ) หรือไม่?
วิธีใดที่มีประสิทธิภาพที่สุดในการพิจารณาว่าตารางว่างเปล่า (นั่นคือปัจจุบันไม่มีทั้งค่าสไตล์อาร์เรย์หรือค่าสไตล์คำสั่ง) ขณะนี้ฉันใช้next(): if not next(myTable) then -- Table is empty end มีวิธีที่มีประสิทธิภาพมากกว่านี้หรือไม่? หมายเหตุ: ตัว#ดำเนินการไม่เพียงพอที่นี่เนื่องจากมันทำงานเฉพาะกับค่าสไตล์อาร์เรย์ในตารางดังนั้นจึง#{test=2}แยกไม่ออก#{}เนื่องจากทั้งสองส่งคืน 0 โปรดทราบว่าการตรวจสอบว่าตัวแปรตารางnilไม่เพียงพอหรือไม่เนื่องจากฉันไม่ได้มองหา ค่าศูนย์ แต่เป็นตารางที่มี 0 รายการ (เช่น{})
120 lua  lua-table 

14
วิธีการถ่ายโอนข้อมูลตารางเพื่อคอนโซล?
ฉันมีปัญหาในการแสดงเนื้อหาของตารางที่มีตารางซ้อนกัน (n-deep) ฉันต้องการเพียงแค่ถ่ายโอนข้อมูลเพื่อ std out หรือคอนโซลผ่านprintคำสั่งหรือสิ่งที่รวดเร็วและสกปรก แต่ฉันคิดไม่ออกว่าจะทำอย่างไร ฉันกำลังมองหาค่าเทียบเท่าคร่าวๆที่ฉันจะได้รับเมื่อพิมพ์NSDictionaryโดยใช้ gdb
110 lua 

4
วิธีตรวจสอบว่าตารางมีองค์ประกอบใน Lua หรือไม่?
มีวิธีตรวจสอบว่าตารางมีค่าหรือไม่? ฉันมีฟังก์ชั่น (ไร้เดียงสา) เป็นของตัวเอง แต่ฉันสงสัยว่ามีบางอย่างที่ "เป็นทางการ" หรือไม่ หรือสิ่งที่มีประสิทธิภาพมากขึ้น ... function table.contains(table, element) for _, value in pairs(table) do if value == element then return true end end return false end อย่างไรก็ตามเหตุผลหลักที่ฉันใช้ฟังก์ชันนี้คือการใช้ตารางเป็นชุดกล่าวคือไม่มีองค์ประกอบที่ซ้ำกัน มีอย่างอื่นที่ฉันสามารถใช้ได้หรือไม่?

1
จะลบรายการตาราง lua ด้วยคีย์ได้อย่างไร?
ฉันมีตาราง lua ที่ฉันใช้เป็นแฮชแมปเช่นมีคีย์สตริง: local map = { foo = 1, bar = 2 } ฉันต้องการ "ป๊อป" องค์ประกอบของตารางนี้ที่ระบุด้วยคีย์ มีtable.remove()วิธีการหนึ่ง แต่ใช้เพียงดัชนีขององค์ประกอบในการลบ (เช่นตัวเลข) ไม่ใช่คีย์ทั่วไป ฉันต้องการจะทำได้table.remove(map, 'foo')และนี่คือวิธีที่ฉันนำไปใช้: function table.removekey(table, key) local element = table[key] table[key] = nil return element end มีวิธีที่ดีกว่านี้หรือไม่?
97 lua  key  lua-table 


6
จะวนซ้ำอักขระแต่ละตัวในสตริง Lua ได้อย่างไร
ฉันมีสตริงใน Lua และต้องการย้ำอักขระแต่ละตัวในนั้น แต่ไม่มีรหัสที่ฉันพยายามใช้งานได้และคู่มืออย่างเป็นทางการแสดงวิธีค้นหาและแทนที่สตริงย่อยเท่านั้น :( str = "abcd" for char in str do -- error print( char ) end for i = 1, str:len() do print( str[ i ] ) -- nil end
93 lua 

3
สำหรับ Loop on Lua
งานของฉันคือวิธีทำห่วง ฉันคิดออกในรูปของตัวเลข แต่ไม่สามารถคิดออกเป็นชื่อได้ ฉันต้องการสร้าง for loop ที่เรียกใช้รายชื่อ ต่อไปนี้คือสิ่งที่ฉันมีจนถึงตอนนี้: names = {'John', 'Joe', 'Steve'} for names = 1, 3 do print (names) end ฉันลองทำอย่างอื่นแล้ว แต่ก็ไม่ได้ผลเทอร์มินัลมักจะแสดงรายการ 1, 2, 3 เสมอ ...
87 loops  for-loop  lua 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.