2011-01-12 14 views
9

एफ # में टाइप की गई सूची (int की ई.जी. सूची) के लिए प्रकार एनोटेशन क्या है? इस प्रकार एक साधारण समारोह के साथ मैं एनोटेशन कर सकते हैं:एफ # सूचियों के लिए एनोटेशन टाइप करें

देना वर्ग (एक्स: पूर्णांक) = ...

मैं एक पूर्णांक प्रकार के रूप में एक्स एनोटेट गए हैं। लेकिन अगर मैं एक int सूची के लिए एक प्रकार की टिप्पणी करना चाहता हूं तो क्या होगा? उदाहरण के लिए, मान लें कि मेरे पास एक अधिकतम फ़ंक्शन है जो एक सूची की अपेक्षा करता है - मैं इसके लिए एक प्रकार की टिप्पणी कैसे करूं?

देना अधिकतम (संख्या: ??) = ...

उत्तर

22

पास दो विकल्प होते हैं:

let max (numbers:int list) = ... 
let max (numbers:list<int>) = ... 

पहले संस्करण सिंटैक्स OCaml से प्राप्त होती है (और अक्सर के लिए आदिम एफ # प्रयोग किया जाता है का उपयोग करता है सूचियों जैसे प्रकार)। दूसरा संस्करण .NET वाक्यविन्यास का उपयोग करता है (और अक्सर .NET प्रकारों के लिए या F # में ऑब्जेक्ट-ओरिएंटेड कोड लिखते समय उपयोग किया जाता है)। हालांकि, दोनों का मतलब बिल्कुल वही बात है।

किसी भी मामले में, प्रकार एनोटेशन का प्रकार हमेशा (<something> : <type>) है जहां <something> या तो पैटर्न (पैरामीटर सूची में) या अभिव्यक्ति है। इसका मतलब है कि int list और list<int> केवल प्रकार के नाम हैं। एफ # इंटरएक्टिव प्रकार यदि आप कुछ मान दर्ज प्रिंट है, तो आप के बारे में अधिक जानने के लिए कैसे प्रकार के नाम लिखे गए हैं इस का उपयोग कर सकते हैं:

> [1;2;3] 
val it : int list = [ 1; 2; 3 ] 
+0

बहुत बहुत और किताब आप ने लिखा (जॉन स्कीट के साथ) के लिए भी धन्यवाद धन्यवाद; मैं कुछ महीनों के लिए इसे चालू/बंद कर रहा हूं। – t3rse

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