2010-09-17 20 views
5

मैंने यहां और नेट पर खोज की लेकिन कोई जवाब नहीं।एफ # केस संवेदनशील है?

कारण मैं पूछता हूँ, है एफ # सम्मेलनों लगता है कि वे noncapital पत्र के पक्ष में, पास्कल परंपराओं से बीसीएल प्रकार, एफ # में अजीब लग रही है के रूप में इन का उपयोग कर के बाद से:

let stringD = String.Join(" ",[| stringA; stringB |]) 

लगता है जैसे कि यह भावना में अधिक होगा

let stringD = string.join(" ",[| stringA; stringB |]) 

उत्तर

8

ठीक है, कुछ चीजें।

पहला, एफ # केस-संवेदी है।

दूसरा, नामकरण के लिए एफ # सम्मेलन F# Component Design Guidelines में वर्णित हैं। संक्षेप में, एफ # मॉड्यूल के अंदर आने वाले सदस्यों को camelCase का उपयोग करें, लेकिन सभी .NET OO संरचना पास्कलकेस का उपयोग करती है। यह एफ # लाइब्रेरी में सच है।

अंत में, एफ # में string नहीं एक कीवर्ड, बल्कि यह एक type abbreviation (System.String के लिए) के दोनों नाम और एक function के नाम (है कि एक स्ट्रिंग में धर्मान्तरित) है। string.Join के अभिव्यक्ति संदर्भ में, फ़ंक्शन का नाम प्राथमिकता लेता है, यही कारण है कि string.Join काम नहीं करता है। और केस-सेंसिटीविटी के कारण, System.String.join कभी काम नहीं करेगा (जब तक कि आपने कोई एक्सटेंशन सदस्य नहीं जोड़ा हो)।

+0

धन्यवाद अद्भुत जवाब। ऐसा लगता है कि अगर आपको कोई फर्क नहीं पड़ता है तो मैं आपको बहुत सारे एफ # प्रश्न पूछूंगा: ओ –

+0

अरे मैं एफ # सीखने जा रहा था लेकिन मैं इसके कारण नहीं हूं ... – beppe9000

1

हैरानी की बात है, the F# Language Specification स्पष्ट रूप से मामला संवेदनशीलता का उल्लेख नहीं है, लेकिन intrinsics/भाषा और उपयोगकर्ता-निर्धारित प्रकार पैरामीटर (5.1.2)

०१२३५१६४१०६ के लिए अलग आवरण का उपयोग कर का उल्लेख करता है: इस तरह के एफ #

जबकि एफ # के साथ मेरा अनुभव सीमित है (हैलो वर्ल्ड-स्टाइल ऐप्स से परे) मुझे लगता है कि string.joinString.Join से जुड़ा नहीं है।

+0

ठीक है मैं समझ सकता हूं स्ट्रिंग में नहीं मिला है, लेकिन सी # स्ट्रिंग या स्ट्रिंग में इसके सदस्यों तक पहुंचने के लिए काम करता है। यह एफ # में क्यों काम नहीं करता है? क्या यह सी # के लिए कवर के पीछे कुछ आईडीई जादू है? –

+3

सी # में, 'स्ट्रिंग' एक कीवर्ड है जिसका अर्थ है 'System.String'। एफ # में, 'स्ट्रिंग' फ़ंक्शन का नाम और एक प्रकार के उपनाम का नाम है, न कि कोई कीवर्ड। – Brian

2

हाँ, एफ # केस-संवेदी

let stringD = string.join(" ",[| stringA; stringB |]) 

काम नहीं होगा।

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