जब आप डिबगिंग करते हैं, तो यह करने में बहुत उपयोगी होता है:मैं दो बार नाम टाइप किए बिना एक चर नाम और उसके मूल्य को कैसे मुद्रित कर सकता हूं?
var = calc()
print("var:", var)
क्या कोई ऐसी भाषा है जहां यह करना आसान है? सी और सी ++ में आप स्ट्रिंगिफ़ मैक्रो ऑपरेटर # का उपयोग कर सकते हैं और रूबी में मुझे यह प्रश्न मिला:
Ruby - print the variable name and then its value
समाधान जो प्रतीक का उपयोग करता है: var और a block मैं चाहता हूं।
डी में, मैंने इसका इस्तेमाल किया:
void trace(alias msg)() {
writeln(msg.stringof ~ ":" ~ to!string(msg));
}
लेकिन मुझे यकीन नहीं है कि यह सबसे अच्छा तरीका है, क्योंकि यह केवल साधारण मामलों में काम करता है। मैंने कई तरीकों की कोशिश की है, लेकिन कभी-कभी आप स्ट्रिंग प्राप्त कर सकते हैं, लेकिन मान नहीं (क्योंकि वेरिएबल स्कोप से बाहर हैं), या आपको पहले टेम्पलेट को मिलाकर फ़ंक्शन को कॉल करना होगा।
और अन्य भाषाओं के बारे में क्या? अजगर? एफ #? बू? शैल स्क्रिप्ट (जो भी खोल)? पर्ल? (मैं पर्ल से दूर रहना पसंद करता हूं)। Tcl? लिस्प, योजना? जावा? (यह बेहद असंभव है कि जावा ऐसा कर सकता है)।
यहां तक कि उन भाषाओं में जहां मुझे किसी प्रकार का समाधान मिला, यह केवल साधारण मामलों के लिए काम करता है। अगर मैं एक मनमाना अभिव्यक्ति मुद्रित करना चाहता हूं तो क्या होगा?
अगर मैं एक भाषा डिजाइन कर रहा था, तो यह सुविधा एक जरूरी होगी। :-)
बढ़िया! यही वही है जो मुझे चाहिए! धन्यवाद! उद्धरण आवश्यक सूक्ष्म है, है ना? बहुत खराब डी इसे क्लीनर को देखने के लिए varName को अलग करने की अनुमति नहीं देता है। मुझे अभिव्यक्ति को एक स्ट्रिंग के अंदर डालने में कोई फर्क नहीं पड़ता है (मैं अपने संपादक में सामान्य टोकन हिल्टिंग करने के लिए q {} का उपयोग कर सकता हूं)। Verbosity के रूप में, मैं एक बहुत ही कम समारोह नाम का उपयोग कर सकते हैं :-) – marcus