مرکزی مواد پر جائیں
ماڈیول 1 · سبق 5 از 5کورس میں 5/50~10 min
ماڈیول اسباق (5/5)

fmt کے ساتھ ان پٹ/آؤٹ پٹ

معیاری لائبریری کا fmt پیکیج پرنٹ کرنے کا آپ کا بنیادی ٹول ہے کنسول، فارمیٹنگ سٹرنگز اور ریڈنگ ان پٹ۔ اگر آپ نے استعمال کیا ہے۔ printf C میں آپ گھر پر ہی محسوس کریں گے، لیکن کچھ اضافی اصلاح کے ساتھ %v اور %T فعل کا شکریہ۔

پرنٹ، پرنٹ ایلن، پرنٹ ایف: تین افعال، تین طرز عمل

Go
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
%.2f2 اعشاریہ کے ساتھ تیرنا3.14
%sتارAda
%q"کوٹڈ" سٹرنگ (اقتباسات اور فرار کے ساتھ)"Ada\n"
%tbooltrue
%xہیکساڈیسیمل (چھوٹا)2a
%bبائنری101010
Go
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

Sprintf: تاروں کو پرنٹ کیے بغیر بنانا

Printf جیسا ہی انٹرفیس، لیکن نتیجہ آپ کو بطور ایک واپس کر دیا جاتا ہے string:

Go
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 آپ موجودہ غلطی کو محفوظ رکھنے کے لیے اسے ** لپیٹ کر** کر سکتے ہیں سلسلہ (ہم اسے انٹرفیس ماڈیول میں گہرائی میں ڈھانپیں گے):

Go
if _, err := os.Open("missing"); err != nil {
    return fmt.Errorf("apertura config: %w", err)
}

آپ کی باری

ورزش#go.m1.l5.e1
کوششیں: 0لوڈ ہو رہا ہے…

fmt.Println کا استعمال کرتے ہوئے 'ciao mondo' سٹرنگ پرنٹ کریں۔

ایڈیٹر لوڈ ہو رہا ہے…
اشارہ دکھائیں۔

`fmt.Println` ایک سٹرنگ لیتا ہے اور خود نئی لائن شامل کرتا ہے۔

3 کوششوں کے بعد حل دستیاب ہے۔

ورزش#go.m1.l5.e2
کوششیں: 0لوڈ ہو رہا ہے…

'eta=36' پرنٹ کرنے کے لیے fmt.Printf کا استعمال کریں، اس کے بعد ایک نئی لائن، عدد کے لیے %d فعل استعمال کریں۔

ایڈیٹر لوڈ ہو رہا ہے…
اشارہ دکھائیں۔

`Printf` نئی لائن شامل نہیں کرتا ہے: آپ کو فارمیٹ سٹرنگ میں `\\n` شامل کرنا ہوگا۔

3 کوششوں کے بعد حل دستیاب ہے۔

Quiz#go.m1.l5.e3
تیار

کون سا فعل کسی قدر کے متحرک TYPE کو پرنٹ کرتا ہے؟

Go
fmt.Printf("?\n", 3.14)
جواب کے اختیارات

Recap

  • Print/Println/Printf خالی جگہوں اور نئی لائنوں میں مختلف ہیں۔
  • %v وہ وائلڈ کارڈ ہے جو کسی بھی قسم پر کام کرتا ہے۔ %+v فیلڈ کے نام دکھاتا ہے۔
  • %T قسم پرنٹ کرتا ہے (فوری ڈیبگنگ کے لیے مفید)۔
  • Sprintf تار بناتا ہے؛ Errorf ریپنگ کے ساتھ غلطیاں پیدا کرتا ہے (%w)۔
  • Printf کوئی نئی لائن شامل نہیں کرتا ہے: اسے فارمیٹ سٹرنگ میں خود لکھیں۔