2010-09-18 22 views
5

कभी-कभी मुझे F # संकलित करते समय परेशान पैटर्न मिलान और इंडेंट चेतावनियां मिलती हैं। क्या चेतावनियों को अक्षम करने का कोई तरीका है? मैं चेतावनियों पर सुंदर ओसीडी हूँ।एफ # चेतावनी चेतावनी

+0

शायद चेतावनियों को सुलझाने? :) – ChaosPandion

+1

मैं पैटर्न मिलान चेतावनियों को बंद करने के बारे में वास्तव में सावधान रहूंगा। और इस बात पर विचार करते हुए कि एफ # सिंटैक्स स्कोप निर्धारित करने के लिए इंडेंटेशन का उपयोग कर सकता है, मैं केवल उन चेतावनियों को अनदेखा नहीं करता - मैंने उन्हें समझने की कोशिश की। –

+2

क्या प्रति-उदाहरण के आधार पर ऐसा करने का कोई तरीका है? कुछ बार मेरे पास ऐसे मामले हैं जो संकलक को चीजें नहीं जानते हैं, उदाहरण के लिए, रेगेक्स मैच समूहों की संख्या का उत्पादन होगा। – gatoatigrado

उत्तर

7

(रों) को देखने के मामले में आप भूल जाते हैं, आप टाइप कर सकते

let rec x = lazy(x.Value) 

और चेतावनी

यह और अन्य पुनरावर्ती संदर्भ करने के लिए वस्तु मिल परिभाषित किया जा रहा है देरी संदर्भ के उपयोग के माध्यम से रनटाइम पर प्रारंभिकता-ध्वनि के लिए चेक किया जाएगा। ऐसा इसलिए है क्योंकि रिकर्सिव फ़ंक्शंस के बजाय, एक या अधिक रिकर्सिव ऑब्जेक्ट्स को परिभाषित कर रहे हैं। यह चेतावनी हो सकती है '#nowarn "40' 'या ' --nowarn: 40 'का उपयोग करके दबाया गया।

जो दिखाता है कि आप कमांड लाइन पर या तो संकलक झंडा --nowarn उपयोग कर सकते हैं, या अपने कोड में हैश-निर्देश #nowarn का उपयोग करें। प्रत्येक चेतावनी के लिए चेतावनी संख्या बिल्ड आउटपुट का हिस्सा होगी (विजुअल स्टूडियो त्रुटि सूची संख्याओं को प्रदर्शित नहीं करती है, इसलिए यदि वीएस में, बिल्ड निर्माण का निरीक्षण करें और फिर निरीक्षण करें)। साथ ही, यदि वीएस के अंदर, आप प्रोजेक्ट प्रॉपर्टी पेज, "बिल्ड" टैब पर जा सकते हैं, और "चेतावनी स्तर" चयनकर्ता और "चेतावनी दबाने" फ़ील्ड (संख्याओं की अर्धविराम-सीमित सूची) का उपयोग कर सकते हैं ताकि यह नियंत्रित किया जा सके कि कौन सी चेतावनियां डायल की गई हैं वीएस यूआई।

(btw, मेरा मानना ​​है कि #nowarn केवल वर्तमान फ़ाइल में चेतावनी बंद हो जाती है, जबकि --nowarn पूरी परियोजना संकलित किया जा रहा के लिए यह बंद हो जाती है।)

+0

अच्छा उत्तर ब्रायन –

2

देखें: Compiler Options (F#)

--nowarn:<int-list>:

अक्षम विशिष्ट संख्या से सूचीबद्ध चेतावनी। एक अल्पविराम द्वारा प्रत्येक चेतावनी संख्या अलग करें। संकलन आउटपुट से किसी भी चेतावनी के लिए आप चेतावनी संख्या खोज सकते हैं।

यह कंपाइलर विकल्प के समान नाम के C# कंपाइलर विकल्प के बराबर है। अधिक जानकारी के लिए /nowarn (C# Compiler Options).

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