में स्थिर चर टीसीएल में स्थिर चर घोषित करना संभव है?
मैं अज्ञात कमांड त्रुटियों को पकड़ने के लिए एक निश्चित फ़ंक्शन का उपयोग करता हूं, और मैं इसे अज्ञात कमांड की पहली उपस्थिति पर एक त्रुटि संदेश मुद्रित करना चाहता हूं - इसलिए मुझे proc
के अंदर एक स्थिर सूची की तरह कुछ रखना होगा। क्या यह संभव है?टीसीएल
Q
टीसीएल
6
A
उत्तर
4
या आप सिर्फ एक सीधी वैश्विक चर का उपयोग कर सकते हैं:
set varList {}
proc useCount {value} {
global varList ;
lappend varList $value
}
useCount One
useCount Two
puts $varList
2
नहीं। लेकिन अगर आप एक वैश्विक (आमतौर पर namespaced) सरणी उदाहरण के लिए proc नाम द्वारा अनुक्रमित का उपयोग कर सकते हैं:
namespace eval foo {
variable statics
array set statics {}
}
...
proc ::foo::bar args {
variable statics
upvar 0 statics([lindex [info level 0] 0]) myvar
# use myvar
}
2
Tcl करता है स्थैतिक चर का समर्थन नहीं करते हैं। एक वैश्विक चर या नामस्थान के अंदर एक चर का उपयोग करने के बजाय, एक और विकल्प कक्षा के भीतर एक विधि के रूप में अपनी प्रक्रिया को लागू करना है (देखें [incr tcl] या snit)। आप स्थिर चर को लागू करना चाहिए, तो Tcl विकि एक पृष्ठ इस मुद्दे पर चर्चा की है: http://wiki.tcl.tk/1532
0
जैसा कि मैंने वैश्विक चर पसंद नहीं है (जब तक आप एक छोटे से स्क्रिप्ट है), मैं @kostix और @Jackson से समाधान गठबंधन:
namespace eval foo {
variable varList {}
}
proc foo::useCount {value} {
variable varList
lappend varList $value
}
foo::useCount One
foo::useCount Two
puts $foo::varList
संबंधित मुद्दे
- 1. टीसीएल
- 2. टीसीएल
- 3. टीसीएल प्रक्रिया
- 4. टीसीएल/उदाहरण उदाहरण?
- 5. टीसीएल स्ट्रिंग concat
- 6. टीसीएल बेनामी कार्य
- 7. एम्बेडेड टीसीएल रनटाइम
- 8. टीसीएल में जटिल संख्या अंकगणित?
- 9. वर्तमान टीसीएल स्क्रिप्ट का पूर्णपथ
- 10. टीसीएल में एक सरणी कैसे शुरू करें?
- 11. टीसीएल स्क्रिप्ट्स में त्रुटियों का स्टेटिक डिटेक्शन
- 12. पायथन टीसीएल ठीक से स्थापित नहीं है
- 13. पायथन में टीसीएल/टीसी कैसे अपडेट करें?
- 14. टीसीएल बनाम लुआ - एक एमएमओ सर्वर स्क्रिप्टिंग
- 15. मैं टीसीएल प्रक्रिया को कैसे हटा सकता हूं?
- 16. टीसीएल/EXPECT में $ hope_out कैसे काम करता है?
- 17. कमांड लाइन से टीसीएल का संस्करण प्राप्त करें?
- 18. अन्य टीसीएल स्क्रिप्ट में tcl स्क्रिप्ट कैसे चलाएं?
- 19. क्या हमें टीसीएल में चर "अनसेट" करने की आवश्यकता है?
- 20. अज्ञात कमांड पर क्रैशिंग से टीसीएल को रोकें
- 21. टीसीएल उस प्रो नाम को प्राप्त करता है जिसमें मैं
- 22. टीसीएल-आधारित उम्मीद से बेहतर अन्य समाधान/भाषाएं?
- 23. टीसीएल में सभी पर्यावरण चर मुद्रित करने के लिए कैसे?
- 24. टीसीएल: सभी .tcl फ़ाइलों को स्रोत करने के लिए उपनिर्देशिकाओं की खोज करें
- 25. क्या मुझे पर्ल जीयूआई के लिए पर्ल/टीसी, टीसीएल :: टीएक्स या टीएक्स का उपयोग करना चाहिए?
- 26. मैं टीसीएल में अग्रणी शून्यों के साथ स्ट्रिंग में पूर्णांक कैसे परिवर्तित करूं?
- 27. एक टीसीएल दुभाषिया बनाएं जो केवल उन आदेशों का समर्थन करता है जो मैं
- 28. टीसीएल में सूची तत्व मौजूद है या नहीं, यह कैसे जांचें?
- 29. टीसीएल में कार्यों के लिए गुजरने वाले सरणी। केवल ऊपर उठाओ?
- 30. टीसीएल टीके को स्टैंडअलोन एप्लिकेशन में कनवर्ट करने के लिए सबसे सरल कदम
अद्यतन: एक सामान्य विचार के लिए http://wiki.tcl.tk/memoizing भी देखें – kostix