एक सशर्त बनाने का उचित तरीका क्या है जो लुआ में कुछ की जांच या खाली नहीं है? if x == ""
और f x ~= ""
काम नहीं कर रहा है।लुआ में कोई मूल्य खाली होने पर कैसे जांचें?
उत्तर
लुआ गतिशील रूप से टाइप-आधारित भाषा है।
किसी भी चर निम्नलिखित प्रकारों में से एक पकड़ कर सकते हैं: शून्य, बूलियन, संख्या, स्ट्रिंग, तालिका, समारोह, धागा, या userdata।
किसी तालिका में कोई भी चर (_G
, तालिका जहां ग्लोबल्स रहते हैं) बिना किसी मान के अनुक्रमित होने पर nil
का मान देता है। जब आप nil
पर तालिका चर सेट करते हैं, तो यह अनिवार्य रूप से "अविकसित" होता है (पूरी तरह से स्मृति से प्रविष्टि को हटाता है)।
जब local
चर घोषित किया जाता है, यदि इसे तत्काल असाइन नहीं किया गया है तो इसे nil
का मान दिया जाता है। तालिका चर के विपरीत, जब आप local
वैरिएबल को nil
पर सेट करते हैं, तो यह "अविकसित" नहीं है (यह केवल nil
का मान है)।
लुआ में, एक खाली स्ट्रिंग (""
) अभी भी एक "मान" है - यह केवल आकार शून्य की एक स्ट्रिंग है।
मुझे लगता है कि "_ जब आप एक चर को शून्य पर सेट करते हैं, तो यह अनिवार्य रूप से" अविकसित "होता है" यह थोड़ा गलत है — 'nil' अंदरूनी तालिकाओं को छोड़कर एक वास्तविक मूल्य है, उदाहरण के लिए, एक स्थानीय चर वैल्यू 'शून्य' के साथ आसपास के क्षेत्रों में छाया चर ... – snogglethorpe
आप बिल्कुल सही हैं; उस कथन का उद्देश्य टेबल जोड़े पर था, सामान्य रूप से सभी चरों पर नहीं। इसे प्रतिबिंबित करने के लिए उत्तर संशोधित किया गया है। – Deco
@snogglethorpe 'यदि नहीं के बराबर तो \t प्रिंट (" शून्य सच है ") बाकी \t प्रिंट (" शून्य सच नहीं है! ") end' -> शून्य सच नहीं है! – handle
आपके पास शायद आपकी स्ट्रिंग में रिक्त स्थान, न्यूलाइन या अन्य गैर-दृश्य वर्ण हैं। तो आपको लगता है कि यह "खाली" है, लेकिन ऐसा नहीं है। यह आम तौर पर तब होता है जब आप उपयोगकर्ता से इनपुट ले रहे हैं, और "एंटर" को समाप्त करने के लिए "एंटर" टाइप करना होगा - स्ट्रिंग में "एंटर" समाप्त होता है।
आपको जो चाहिए वह एक ऐसा फ़ंक्शन है जो आपको बताता है कि स्ट्रिंग "खाली" है या तो खाली है, या रिक्त स्थान/टैब/न्यूलाइन की एक सूची है।
function isBlank(x)
return not not tostring(x):find("^%s*$")
end
उपयोग::
if isBlank(x) then
-- ...
end
काफी अक्षम है; 'स्ट्रिंग नहीं है। ढूँढें (एक्स, "^% एस * $") ' – daurnimator
ठीक है, आपका संस्करण निश्चित रूप से है (एक बार जब आप ओमेटेड टॉस्ट्रिंग कॉल शामिल करते हैं)। मुझे यकीन नहीं है कि यह काफी तेज है। आप ऐसा क्यों सोचते हैं? – kikito
'string.gsub'' string.find' की तुलना में उस ऑपरेशन के लिए बहुत सारी मेमोरी आवंटित करेगा (एक नई स्ट्रिंग जिसे प्रतिस्थापित किया गया है, प्रतिस्थापन के लिए एक या दो बफर)। – Deco
मैं हाल ही में इस समस्या को भर में भाग गया यहाँ एक तरह से यह करने के लिए है। यदि डेटाबेस मान 'खाली' था (शून्य नहीं) तो LuaSQL रिक्त स्ट्रिंग वापस कर रहा था। एक हैकी दृष्टिकोण, लेकिन यहां मैंने इसे हल किया है:
if (string.len(x) >= 1) then
...
end
- 1. पायथन में कोई सूची खाली होने पर कैसे जांचें?
- 2. पाइथन में कोई चर खाली होने पर कैसे जांचें?
- 3. कोडनिर्देशक में फ़ाइल फ़ील्ड खाली होने पर कैसे जांचें?
- 4. पायथन में एक डेक खाली होने पर कैसे जांचें?
- 5. cmd फ़ाइल में खाली मान कैसे जांचें?
- 6. बैश पढ़ने में कोई इनपुट कैसे जांचें?
- 7. जांचें कि कोई BSTR खाली है
- 8. दस्तावेज तैयार होने पर कैसे जांचें?
- 9. ड्रॉपडाउन अक्षम होने पर कैसे जांचें?
- 10. जावास्क्रिप्ट में एक चर लोड होने पर कैसे जांचें?
- 11. जांचें कि कोई HTML इनपुट तत्व खाली है या उपयोगकर्ता
- 12. Boost :: asio में सॉकेट कनेक्शन लाइव होने पर कैसे जांचें?
- 13. पाइथन में एक MySQL कनेक्शन बंद होने पर कैसे जांचें?
- 14. Boost.Asio में सॉकेट बंद होने पर कैसे जांचें?
- 15. कैसे जांचें कि तालिका में लुआ में कोई तत्व है या नहीं?
- 16. सामग्री खाली होने पर div को छुपाएं
- 17. JQuery - छवि लोड होने पर जांचें?
- 18. खाली खाली होने पर रिक्त IQueryable वापसी क्या होती है?
- 19. एंड्रॉइड में कोई एप्लिकेशन इंस्टॉल या नहीं होने पर प्रोग्रामेटिक रूप से कैसे जांचें?
- 20. खोज स्ट्रिंग खाली होने पर UISearchDisplayTableView दिखाएं
- 21. टेक्स्टफ़ील्ड खाली होने पर अक्षम बटन
- 22. MySQL सबस्ट्रिंग खाली मूल्य
- 23. कैसे जांचें कि mysql शून्य/खाली
- 24. खाली कैसे पोस्ट करें <select .. एकाधिक> HTML तत्व खाली होने पर?
- 25. टीएसक्यूएल: कॉलम पूर्ण टेक्स्ट सक्षम होने पर कैसे जांचें?
- 26. फ़ील्ड खाली होने पर सशर्त SUMIF
- 27. MySQL खाली मूल्य
- 28. कैसे जांचें कि कोई खाली खाली स्थान के बराबर है या नहीं?
- 29. जांचें कि क्या NSNumber खाली है
- 30. जांचें कि स्ट्रिंग खाली है
आप "खाली" कैसे परिभाषित करते हैं? –
खाली अर्थ, इसमें कुछ भी टाइप नहीं है। – Village
आप वैरिएबल में मान टाइप नहीं कर सकते हैं। क्या आप एक और सटीक परिभाषा दे सकते हैं? क्योंकि एक चर जो '' "स्ट्रिंग रखता है" खाली "नहीं है। इसमें एक स्ट्रिंग है। अर्थात् '" "'। एक वैध स्ट्रिंग कौन सा है। और इसलिए कुछ भी नहीं। –