मॉड्यूल पाठ (5/5)
एफएमटी के साथ इनपुट/आउटपुट
मानक लाइब्रेरी का fmt पैकेज मुद्रण के लिए आपका मुख्य उपकरण है
कंसोल, फ़ॉर्मेटिंग स्ट्रिंग्स और रीडिंग इनपुट। यदि आपने प्रयोग किया है
printf C में आप बिल्कुल घर जैसा महसूस करेंगे, लेकिन कुछ अतिरिक्त परिशोधन के साथ
%v और %T क्रियाओं के लिए धन्यवाद।
प्रिंट, प्रिंटएलएन, प्रिंटफ: तीन कार्य, तीन व्यवहार
fmt.Print("ciao ", "mondo") // "ciao mondo" (niente newline finale)
fmt.Println("ciao", "mondo") // "ciao mondo\n" (newline + spazi tra argomenti)
fmt.Printf("eta=%d\n", 36) // "eta=36\n" (format string esplicita)वे क्रियाएं जिनका आप हर समय उपयोग करेंगे
| क्रिया | यह क्या प्रिंट करता है | उदाहरण |
|---|---|---|
%v | "डिफ़ॉल्ट मान" - किसी भी प्रकार पर काम करता है | {Ada 36} |
%+v | जैसे %v लेकिन structs में फ़ील्ड नामों के साथ | {Name:Ada Age:36} |
%#v | मूल्य का "गो-सिंटैक्स" प्रतिनिधित्व | main.User{Name:"Ada", Age:36} |
%T | मान का प्रकार | float64 |
%d | आधार 10 में पूर्णांक | 42 |
%f | तैरना | 3.140000 |
%.2f | 2 दशमलव के साथ फ़्लोट करें | 3.14 |
%s | स्ट्रिंग | Ada |
%q | "उद्धृत" स्ट्रिंग (उद्धरण और एस्केप के साथ) | "Ada\n" |
%t | बूल | true |
%x | हेक्साडेसिमल (लोअरकेस) | 2a |
%b | बाइनरी | 101010 |
u := struct{ Name string; Age int }{"Ada", 36}
fmt.Printf("%v\n", u) // {Ada 36}
fmt.Printf("%+v\n", u) // {Name:Ada Age:36}
fmt.Printf("%T\n", 3.14) // float64स्प्रिंटफ: स्ट्रिंग्स को बिना प्रिंट किए बनाना
Printf जैसा ही इंटरफ़ेस, लेकिन परिणाम आपको एक के रूप में लौटाया जाता है
string:
msg := fmt.Sprintf("L'utente %s ha %d anni", "Ada", 36)
fmt.Println(msg) // L'utente Ada ha 36 anniआप संदेश, लॉग और त्रुटियाँ बनाने के लिए इसका लगातार उपयोग करेंगे।
Errorf: स्ट्रिंग्स + एरर रैपिंग
fmt.Errorf Printf-शैली स्वरूपण के साथ एक error बनाता है। के साथ
विशेष क्रिया %w आप किसी मौजूदा त्रुटि को संरक्षित करने के लिए रैप कर सकते हैं
श्रृंखला (हम इसे इंटरफ़ेस मॉड्यूल में गहराई से कवर करेंगे):
if _, err := os.Open("missing"); err != nil {
return fmt.Errorf("apertura config: %w", err)
}आपकी बारी
fmt.Println का उपयोग करके स्ट्रिंग 'ciao mondo' प्रिंट करें।
संकेत दिखाएँ
`fmt.Println` एक स्ट्रिंग लेता है और नई लाइन स्वयं जोड़ता है।
3 प्रयासों के बाद समाधान उपलब्ध है
पूर्णांक के लिए %d क्रिया का उपयोग करके, 'eta=36' को प्रिंट करने के लिए fmt.Printf का उपयोग करें और उसके बाद एक नई पंक्ति का उपयोग करें।
संकेत दिखाएँ
`प्रिंटफ` एक नई पंक्ति नहीं जोड़ता है: आपको प्रारूप स्ट्रिंग में `\\n` को शामिल करना होगा।
3 प्रयासों के बाद समाधान उपलब्ध है
कौन सी क्रिया किसी मान के गतिशील प्रकार को प्रिंट करती है?
fmt.Printf("?\n", 3.14)संक्षिप्त
Print/Println/Printfरिक्त स्थान और न्यूलाइन में भिन्न हैं।%vवाइल्डकार्ड है जो किसी भी प्रकार पर काम करता है;%+vफ़ील्ड नाम दिखाता है।%Tप्रकार प्रिंट करता है (त्वरित डिबगिंग के लिए उपयोगी)।Sprintfस्ट्रिंग बनाता है;Errorfरैपिंग (%w) के साथ त्रुटियां पैदा करता है।Printfकोई नई पंक्ति नहीं जोड़ता: इसे प्रारूप स्ट्रिंग में स्वयं लिखें।