Reflection in Rebol: Is it possible to know the script/object/function that is executing? -


यदि आर 3 में यह संभव नहीं है?

हाँ और नहीं।

तकनीकी तौर पर, नहीं ..... फ़ंक्शंस के नाम नहीं हैं, वे अनाम हैं एक ही समारोह एक से अधिक शब्द को सौंपा जा सकता है, इसलिए वास्तविक नाम समस्याग्रस्त है।

  do func [] [प्रिंट "हे विश्व"] ;; इस फ़ंक्शन का स्पष्ट रूप से सभी नामों पर कोई नाम नहीं है: फ़्ंटक [] [प्रिंट "यो विश्व"] ;; यहां तीन नामों के साथ एक समारोह है f2:: f1 f3:: f2  

कुछ मामलों में अभ्यास में, हां .... आप वर्तमान नाम (यदि कोई है) को पकड़ कर सकते हैं एक चाल: एक त्रुटि को कैप्चर करें, और त्रुटि ऑब्जेक्ट में स्टैक पर नाम होता है:

  f3: func [/ स्थानीय ईओ] [ईओ: निहृ € ा प्रयास करें [0/0] प्रिंट ["नाम है "ईओ / कहां]] एफ 4:: एफ 3   <पी> इसे आज़माएं:  
  & gt; & gt; एफ 3 नाम एफ 3 है & gt; & gt; एफ 4 नाम एफ 4 है  

यहां एक व्यापक चर्चा है:


Comments

Popular posts from this blog

ios - Form Sheet content disappearing -

MySql variables and php -

c++ - an enclosing-function local variable cannot be referenced in a lambda body unless if it is in capture list -