मैं लुआ दस्तावेज में कोड का एक अजीब टुकड़ा मिल गया है:लुआ - स्थानीय आवश्यक eveytime एक स्थानीय चर असाइन किया गया है?
function trim8(s)
local i1,i2 = find(s,'^%s*')
if i2 >= i1 then s = sub(s,i2+1) end
local i1,i2 = find(s,'%s*$')
if i2 >= i1 then s = sub(s,1,i1-1) end
return s
end
क्यों local
i1
और i2
साथ एक बार फिर से प्रयोग किया जाता है? क्या वे पहले से ही स्थानीय चर के बीच घोषित नहीं हैं? क्या आपको हर बार local
कीवर्ड दोहराना होगा जब आप उन्हें असाइन करना चाहते हैं?
ढेर पदों (स्थानीय चर) अधीन नहीं हैं:
और
उपयोग
luac -p -l
निम्न परिणाम आउटपुट कचरा संग्रह करने के लिए। छायांकित स्थानीय चर में संग्रहीत एक मूल्य को अभी भी सुलभ माना जाता है। –@EgorSkriptunoff क्या आपके पास इसके लिए एक विनिर्देश संदर्भ है या यह अवलोकन पर आधारित है? (मुझे पता है कि मैंने डीबगर लिखते समय मानक कार्यान्वयन में छायांकित स्थानीय लोगों को देखा है।) लेकिन, क्या एक कंपाइलर स्टैक उपयोग को अनुकूलित करने के लिए स्वतंत्र नहीं है? –
@ टॉमब्लोडेट - आईएमओ, यह बहुत ही असंभव है कि ठेठ अनुकूलन सामान्य लुआ कार्यक्रमों के लिए उपयोगी होगा। –