2014-04-29 8 views
6

std.traits मॉड्यूल के अंदर, मैं एक लाइन के लिए इसी तरह मिल सकती है? यह एक कथन से अलग कैसे है और इसका उपयोग कब किया जाना चाहिए?डी में 'है' कथन क्या हैं?</p> <pre><code>assert(is(Unqual!(int) == int)); </code></pre> <p>मुझे पता है कि <code>Unqual</code> अपरिवर्तनीय की तरह किसी भी प्रकार के संशोधक निकालता है, लेकिन क्या करता है '' कार्य करें:

+1

मुझे यकीन नहीं है कि डाउनवॉट्स क्यों। यह एक वैध सवाल की तरह लगता है। यदि आप नीचे आ गए हैं, तो कृपया बताएं क्यों। – deadalnix

+0

@deadalnix मुझे लगता है कि यह डाउनवॉट किया गया था क्योंकि यह प्रलेखन में उपलब्ध था। हालांकि हर किसी को यह स्वीकार करना होगा कि गुगलिंग पत्र डी के साथ मिलकर है, जिसके लिए सार्थक परिणाम प्राप्त करना सबसे आसान बात नहीं है। –

+2

बेहतर परिणामों के लिए "dlang", "d प्रोग्रामिंग" या "साइट: dlang.org" का उपयोग करें। –

उत्तर

8

is(Unqual!(int) == int) एक अभिव्यक्ति है, एक बयान नहीं। आपके द्वारा पोस्ट की गई रेखा std.traits में मौजूद नहीं है।

मुझे लगता है आप निम्न पंक्ति मतलब है:

static assert(is(Unqual!int == int)); 

IsExpression के दस्तावेज़ देखें।

+0

आह कोई आश्चर्य नहीं कि मैं इसे कथन दस्तावेज के अंदर नहीं ढूंढ सका। : एस –

5

is, एक अभिव्यक्ति है कि अगर प्रकार बराबर हैं जाँच करने के लिए उदाहरण के लिए अनुमति देता है, तो 1 प्रकार एक और की उप-प्रकार है या यदि T एक वर्ग/enum/struct आदि

कोड आपको चेक पोस्ट करता है, तो निर्दिष्ट प्रकार करता है कोई संशोधक नहीं है।

अधिक जानकारी के लिए D Language Documentation about IsExpression

संबंधित मुद्दे