ప్రధాన కంటెంట్‌కు వెళ్లండి
మాడ్యూల్ 1 · 5లో పాఠం 5కోర్సులో 5/50~10 min
మాడ్యూల్ పాఠాలు (5/5)

fmtతో ఇన్‌పుట్/అవుట్‌పుట్

స్టాండర్డ్ లైబ్రరీ యొక్క fmt ప్యాకేజీ ప్రింటింగ్ కోసం మీ ప్రధాన సాధనం కన్సోల్, స్ట్రింగ్స్ ఫార్మాటింగ్ మరియు ఇన్‌పుట్ చదవడం. మీరు ఉపయోగించినట్లయితే printf C లో మీరు ఇంట్లో ఉన్నట్లు అనిపిస్తుంది, కానీ కొంత అదనపు మెరుగుదలతో %v మరియు %T క్రియలకు ధన్యవాదాలు.

Print, Println, Printf: మూడు విధులు, మూడు ప్రవర్తనలు

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 లాగా కానీ ఫీల్డ్ పేర్లతో స్ట్రక్ట్స్{Name:Ada Age:36}
%#vవిలువ యొక్క "గో-సింటాక్స్" ప్రాతినిధ్యం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 Printf-శైలి ఫార్మాటింగ్‌తో errorని సృష్టిస్తుంది. తో ప్రత్యేక క్రియ %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లోడ్ అవుతోంది...

పూర్ణాంకం కోసం %d క్రియను ఉపయోగించి, కొత్త లైన్‌తో 'eta=36'ని ప్రింట్ చేయడానికి fmt.Printf ఉపయోగించండి.

ఎడిటర్ లోడ్ అవుతోంది…
సూచనను చూపించు

`Printf` కొత్త లైన్‌ని జోడించదు: మీరు ఫార్మాట్ స్ట్రింగ్‌లో `\\n`ని చేర్చాలి.

3 ప్రయత్నాల తర్వాత పరిష్కారం లభిస్తుంది

Quiz#go.m1.l5.e3
సిద్ధంగా ఉంది

ఏ క్రియ విలువ యొక్క డైనమిక్ TYPEని ముద్రిస్తుంది?

Go
fmt.Printf("?\n", 3.14)
సమాధాన ఎంపికలు

రీక్యాప్

  • Print/Println/Printf స్పేస్‌లు మరియు కొత్త లైన్‌లలో తేడా ఉంటుంది.
  • %v అనేది ఏ రకంలోనైనా పనిచేసే వైల్డ్‌కార్డ్; %+v ఫీల్డ్ పేర్లను చూపుతుంది.
  • %T రకాన్ని ప్రింట్ చేస్తుంది (త్వరిత డీబగ్గింగ్ కోసం ఉపయోగపడుతుంది).
  • Sprintf స్ట్రింగ్‌లను నిర్మిస్తుంది; Errorf ర్యాపింగ్‌తో లోపాలను సృష్టిస్తుంది (%w).
  • Printf కొత్త లైన్‌ని జోడించదు: ఫార్మాట్ స్ట్రింగ్‌లో మీరే వ్రాయండి.