2012-02-08 16 views
7

में तालिका का मानव पठनीय स्ट्रिंग प्रतिनिधित्व, मैं लुआ के लिए नया हूं और डिबगिंग उद्देश्यों के लिए तालिका की सामग्री मुद्रित करना चाहता हूं। मैं खुद टेबल पर फिर से चलकर ऐसा कर सकता हूं। हालांकि, चूंकि यह मुझे एक बहुत ही आम समस्या के रूप में मारता है, इसलिए मुझे उम्मीद है कि ऐसा करने के बॉक्स तरीके से बाहर होना चाहिए या किसी ने एक अच्छी लाइब्रेरी लिखी होगी जो ऐसा करता है। लुआ में ऐसा करने का मानक तरीका क्या है?लुआ

उत्तर

3

बेहतर या बदतर के लिए एक समारोह को परिभाषित किया गया है, वहाँ कोई मानक है। लुआ इस बात के लिए जाना जाता है कि इसमें क्या शामिल है इसके लिए इसे शामिल नहीं किया गया है। यह उचित स्ट्रिंग प्रस्तुतियों के बारे में धारणा नहीं करता है क्योंकि स्वरूप, नेस्टेड टेबल, फ़ंक्शन प्रस्तुति या तालिका चक्र जैसी चीज़ों को संभालने का कोई भी सही तरीका नहीं है। ऐसा कहा जा रहा है, यह "बैटरी शामिल" लुआ पुस्तकालय के साथ शुरू करने के लिए चोट नहीं पहुंचाता है। शायद Penlight पर विचार करें। इसकी pl.pretty.write चाल है।

3

यह तालिका क्रमिकरण की सामान्य समस्या का एक उदाहरण है।

कुछ गंभीर कार्यान्वयन के लिए at the Table Serialization page at lua-users पर एक नज़र डालें।

यह मेरी फेंक आमतौर पर जल्दी की तरह

function lt(t) for k,v in pairs(t) do print(k,v) end end 
+0

lualogging से उधार लिया गया था मुझे लगता है कि पेज को देखा है, लेकिन यह कठिन विश्वास करने के लिए मिल जाए, कि इस तरह के एक आम समस्या प्राप्त खत्म हो चुका है हल बार बार और इस तरह के एक वर्बोज़ फैशन में। – ajmurmann

+2

यही कारण है कि एक पूर्ण लुआ स्थापना लगभग 1 एमबी (43.3 एमबी पर पायथन के विपरीत) है। आपके पास एक बिंदु है, लेकिन फिर, जबकि आपको फ़ंक्शन की आवश्यकता हो सकती है, बहुत से अन्य लोग नहीं सोच सकते हैं (लूआ को एम्बेड करना)। आपको इसे या तो इसे लागू करने की आवश्यकता नहीं है, बस इसे एक फ़ाइल में छोड़ दें, और इसे आवश्यकतानुसार 'आवश्यक' करें, या इसे 'LUA_INIT' पर्यावरण चर में डालें, जो इसे स्वचालित रूप से लोड करेगा (देखें [* स्टैंडअलोन * अनुभाग] (लुआ मैनुअल के http://www.lua.org/manual/5.2/manual.html#7)। – jpjacobs

+2

@ajmurmann - विश्वास करना मुश्किल है, सच है। लेकिन लुआ इस बात के लिए जाना जाता है कि इसमें क्या शामिल है इसके लिए इसे शामिल नहीं किया गया है। यह उचित स्ट्रिंग प्रस्तुतियों के बारे में धारणा नहीं करता है क्योंकि स्वरूप, नेस्टेड टेबल, फ़ंक्शन प्रस्तुति या तालिका चक्र जैसी चीज़ों को संभालने का कोई भी तरीका नहीं है। ऐसा कहा जा रहा है, यह "बैटरी शामिल" लुआ पुस्तकालय के साथ शुरू करने के लिए चोट नहीं पहुंचाता है। शायद [पेनलाइट] पर विचार करें (http://stevedonovan.github.com/Penlight/)। [pl.pretty.write] (http://stevedonovan.github.com/Penlight/api/modules/pl.pretty.html#write) चाल करता है। –