मैं एक लुआ लाइब्रेरी विकसित कर रहा हूं जिसमें मुझे किसी दिए गए स्ट्रिंग के पहले अक्षर को अपरकेस करने की आवश्यकता है। इसलिए मैंने निम्नलिखित फ़ंक्शन बनाया:"स्ट्रिंग" तालिका "विस्तार करें" - इसे कैसे करें? क्या यह भी एक अच्छा विचार है?
local capitalize = function(s)
return string.gsub (s,
"(%w)([%w]*)",
function (first, rest)
return string.upper(first) .. rest
end,
1)
end
यह प्रारंभ में एक "आंतरिक" फ़ंक्शन था, जिसका उपयोग केवल मेरी लाइब्रेरी पर किया जाता था।
अब मुझे एहसास हुआ है कि मेरे उपयोगकर्ता कुछ मामलों में इस फ़ंक्शन का उपयोग करना चाहेंगे।
प्रश्न 1 मैं स्ट्रिंग टेबल को विस्तारित करने के बारे में सोच रहा हूं, लेकिन मुझे आगे बढ़ने के बारे में अनिश्चितता है। क्या ऐसा करने के लिए पर्याप्त है, या क्या एक और अधिक "लुआ-उन्मुख" तरीका है?
string.capitalize = function(s)
... etc etc (same code as above)
प्रश्न 2 मुझे आश्चर्य है कि अगर यह भी एक अच्छा विचार स्ट्रिंग monkeypatch है। क्या मुझे इसके बजाय सार्वजनिक "पूंजीकरण" फ़ंक्शन प्रदान करना चाहिए?
संपादित करें - मामले में किसी को भी भविष्य में इस पाता है, एक बहुत आसान "भुनाने" समारोह string recipes पृष्ठ पर दिखाया गया है:
str = str:gsub("^%l", string.upper)
इसे साझा करने के लिए धन्यवाद। मैं अंततः अपने "अंतिम नोट" का पालन करूंगा और अपने कार्यों के साथ प्रदूषण स्ट्रिंग नहीं करूँगा - मुझे लगता है कि मुझे एक बेहतर तरीका मिला है। लेकिन भविष्य में आपके नोट्स आसान हो सकते हैं। – kikito