lua - Non numeral indeces and the # never counts? -


मिश्रित अनुक्रमित सारणी के साथ तालिका को देखते हुए:

  table = {foo = 'bar' [1] = 'फोबार'} मेरा प्रश्न  #  के बारे में है, जो अंतिम इंडेक्स देता है जो तालिका के माध्यम से चलने के दौरान एक अंतराल से अलग नहीं होता है। 

  प्रिंट (#table)  

आउटपुट 1 देगा।

  तालिका = {Foo = 'bar', lol = 'rofl', [1] = 'कुछ', [2] = 'वस्तु', [3] = 'कुछ भी', [4] = 'else'} प्रिंट (#table )  

को 4

प्रिंट कर सकता हूँ क्या मैं 100% सुनिश्चित कर सकता हूं कि # कभी भी विचलित नहीं होगा गैर अंक अनुक्रमित? क्या ये अनुक्रमित वास्तव में हर बार अनग्रेन्ड हैं?

हाँ, आप उस पर भरोसा कर सकते हैं (lua 5.1 में) ।

लुआ से:

लम्बाई ऑपरेटर को यूनरी ऑपरेटर द्वारा दर्शाया गया है #। स्ट्रिंग की लंबाई इसकी बाइट्स की संख्या है (यानी, स्ट्रिंग लम्बाई का सामान्य अर्थ है जब प्रत्येक कैरेक्टर एक बाइट होता है)।

तालिका की लंबाई किसी भी पूर्णांक सूचकांक को परिभाषित की जाती है कि टी [एन] शून्य और टी [एन + 1] शून्य नहीं है; इसके अलावा, यदि टी [1] शून्य है, शून्य शून्य हो सकता है एक नियमित सरणी के लिए, शून्य से शून्य के साथ 1 से दिए गए अंकों के साथ, इसकी लंबाई ठीक है, n, उसके अंतिम मान का सूचकांक। अगर सरणी में "छेद" (अर्थात, अन्य गैर-शून्य मानों के बीच शून्य मान) है, तो #t कोई भी सूचकांक हो सकता है, जो सीधे शून्य मान से पहले होता है (यानी, यह किसी भी शून्य मान को अंत के रूप में मान सकता है

lua 5.2 टेबल पर काम करने के लिए __ लेन मेटामथ के लिए अनुमति देता है और इसका अर्थ है कि # अन्य चीजों को कर सकता है। कुछ उदाहरणों के लिए @किकिटो का जवाब देखें।


Comments

Popular posts from this blog

java - Can't add JTree to JPanel of a JInternalFrame -

java - @PluginTarget(Node.class) not registering as neo4j plugin -

c - The joining operator ";" in my shell isn't working properly -