let test = "aString"
let callMe =
printfn test
हैरान क्यों इस काम की नहीं है? संकलन समय पर त्रुटि नीचे फेंकता:
प्रकार 'स्ट्रिंग' प्रकार के साथ संगत नहीं है 'Printf.TextWriterFormat <' एक> '
यह ठीक काम करता है:
printfn "aString"
let test = "aString"
let callMe =
printfn test
हैरान क्यों इस काम की नहीं है? संकलन समय पर त्रुटि नीचे फेंकता:
प्रकार 'स्ट्रिंग' प्रकार के साथ संगत नहीं है 'Printf.TextWriterFormat <' एक> '
यह ठीक काम करता है:
printfn "aString"
ऐसा इसलिए है क्योंकि format
पैरामीटर वास्तव में string
नहीं है। यह TextWriterFormat<'T>
है और एफ # कंपाइलर स्ट्रिंग प्रारूप को उस प्रकार में परिवर्तित करता है। लेकिन यह string
चर पर काम नहीं करता है, क्योंकि संकलक string
को TextWriterFormat<'T>
रनटाइम पर परिवर्तित नहीं कर सकता है।
यदि आप चर की सामग्री मुद्रित करना चाहते हैं, तो आपको इस तरह printfn
का उपयोग करने की कोशिश भी नहीं करनी चाहिए, क्योंकि चर प्रारूप प्रारूप में हो सकता है।
आप %s
प्रारूप का उपयोग कर सकते:
printfn "%s" test
या नेट Console.WriteLine()
का उपयोग करें:
Console.WriteLine test
फ़ाइल के शीर्ष पर open System
जोड़ने के लिए यदि आप चाहते हैं मत भूलना Console
कक्षा का उपयोग करें।
क्या svick कहा साथ लाइन में, आप भी इस कोशिश कर सकते हैं:
let test = "aString"
let callMe = printfn (Printf.TextWriterFormat<_> test)
callMe
नहीं; मूल्य प्रतिबंध –
मैं जोड़ना होगा कि का उपयोग करते हुए 'Console.WriteLine' एफ में # कोड मुहावरेदार नहीं है, और' printf' संस्करण अधिक आम है । –
आह ठीक है अगर संकलक इसे परिवर्तित करता है तो मुझे लगता है। printfn "% s" परीक्षण – CodeMonkey
के साथ समाप्त हुआ आप 'stdout.WriteLine test' भी कर सकते हैं, जहां मुझे लगता है कि एकमात्र लाभ यह है कि यह एक छोटा छोटा है और आपको 'सिस्टम' –