ماڈیول اسباق (5/5)
fmt کے ساتھ ان پٹ/آؤٹ پٹ
معیاری لائبریری کا 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 | "Go-Syntax" قدر کی نمائندگی | main.User{Name:"Ada", Age:36} |
%T | قدر کی قسم | float64 |
%d | بیس 10 میں انٹیجر | 42 |
%f | فلوٹ | 3.140000 |
%.2f | 2 اعشاریہ کے ساتھ تیرنا | 3.14 |
%s | تار | Ada |
%q | "کوٹڈ" سٹرنگ (اقتباسات اور فرار کے ساتھ) | "Ada\n" |
%t | bool | 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) // float64Sprintf: تاروں کو پرنٹ کیے بغیر بنانا
Printf جیسا ہی انٹرفیس، لیکن نتیجہ آپ کو بطور ایک واپس کر دیا جاتا ہے
string:
msg := fmt.Sprintf("L'utente %s ha %d anni", "Ada", 36)
fmt.Println(msg) // L'utente Ada ha 36 anniآپ اسے پیغامات، نوشتہ جات اور غلطیاں بنانے کے لیے مسلسل استعمال کریں گے۔
ایررف: سٹرنگز + ایرر ریپنگ
fmt.Errorf ایک error بناتا ہے Printf طرز کی فارمیٹنگ کے ساتھ۔ کے ساتھ
خصوصی فعل %w آپ موجودہ غلطی کو محفوظ رکھنے کے لیے اسے ** لپیٹ کر** کر سکتے ہیں
سلسلہ (ہم اسے انٹرفیس ماڈیول میں گہرائی میں ڈھانپیں گے):
if _, err := os.Open("missing"); err != nil {
return fmt.Errorf("apertura config: %w", err)
}آپ کی باری
fmt.Println کا استعمال کرتے ہوئے 'ciao mondo' سٹرنگ پرنٹ کریں۔
اشارہ دکھائیں۔
`fmt.Println` ایک سٹرنگ لیتا ہے اور خود نئی لائن شامل کرتا ہے۔
3 کوششوں کے بعد حل دستیاب ہے۔
'eta=36' پرنٹ کرنے کے لیے fmt.Printf کا استعمال کریں، اس کے بعد ایک نئی لائن، عدد کے لیے %d فعل استعمال کریں۔
اشارہ دکھائیں۔
`Printf` نئی لائن شامل نہیں کرتا ہے: آپ کو فارمیٹ سٹرنگ میں `\\n` شامل کرنا ہوگا۔
3 کوششوں کے بعد حل دستیاب ہے۔
کون سا فعل کسی قدر کے متحرک TYPE کو پرنٹ کرتا ہے؟
fmt.Printf("?\n", 3.14)Recap
Print/Println/Printfخالی جگہوں اور نئی لائنوں میں مختلف ہیں۔%vوہ وائلڈ کارڈ ہے جو کسی بھی قسم پر کام کرتا ہے۔%+vفیلڈ کے نام دکھاتا ہے۔%Tقسم پرنٹ کرتا ہے (فوری ڈیبگنگ کے لیے مفید)۔Sprintfتار بناتا ہے؛Errorfریپنگ کے ساتھ غلطیاں پیدا کرتا ہے (%w)۔Printfکوئی نئی لائن شامل نہیں کرتا ہے: اسے فارمیٹ سٹرنگ میں خود لکھیں۔