మాడ్యూల్ పాఠాలు (1/5)
if, else, మరియు init స్టేట్మెంట్లు
గోలో if సింటాక్స్ క్లాసిక్ ఒకటి కానీ రెండు ముఖ్యమైన తేడాలు ఉన్నాయి
C/Javaతో పోలిస్తే: కుండలీకరణాలు లేవు పరిస్థితి చుట్టూ, మరియు
if లో నేరుగా తాత్కాలిక వేరియబుల్ని ప్రకటించగల సామర్థ్యం
(init స్టేట్మెంట్).
ప్రాథమిక వాక్యనిర్మాణం
if temperatura > 30 {
fmt.Println("caldo")
} else if temperatura > 20 {
fmt.Println("mite")
} else {
fmt.Println("fresco")
}బ్రేస్లు తప్పనిసరి, సింగిల్-లైన్ బ్లాక్లకు కూడా. ది
పరిస్థితి తప్పనిసరిగా bool రకంగా ఉండాలి: పైథాన్ లేదా JS వంటి "నిజం" లేదు.
n := 0
// if n { ... } // ERRORE: int non è bool
if n != 0 { ... } // okInit స్టేట్మెంట్: స్కోప్ ఐఫ్కి పరిమితం చేయబడింది
మీరు if/else లోపల చెల్లుబాటు అయ్యే మాత్రమే వేరియబుల్ని ప్రకటించవచ్చు,
;తో షరతు నుండి వేరు చేయడం:
if v, err := call(); err == nil {
fmt.Println("ok", v)
} else {
fmt.Println("ko", err)
}
// qui v ed err NON esistono piùఇది బాహ్య పరిధిని కలుషితం చేయకుండా లోపాలను నిర్వహించడానికి ఇడియోమాటిక్ నమూనా.
if స్కోప్లో షాడోయింగ్
ఒక బాహ్య వేరియబుల్ init ద్వారా **"షాడోడ్"**ని పొందినట్లయితే, లోపల స్థానిక వెర్షన్ గెలిస్తే. వెనువెంటనే, బయటిది మళ్లీ ఉద్భవిస్తుంది.
x := 10
if x := 3; x > 5 {
fmt.Println("dentro:", x) // mai stampato (3 < 5)
} else {
fmt.Println("else:", x) // 3
}
fmt.Println("dopo:", x) // 10 — quella esternaటెర్నరీ ఆపరేటర్ లేరు
Goకి cond ? a : b లేదు. షరతులతో కూడిన అసైన్మెంట్ల కోసం మీకు if/else అవసరం
3-4 లైన్లలో — ఇది చదవడానికి అనుకూలంగా ఉండేలా డిజైన్ ఎంపిక.
var label string
if age >= 18 {
label = "adulto"
} else {
label = "minore"
}దీనిని ప్రయత్నించండి
n విలువను బట్టి 'పాజిటీవో', 'సున్నా' లేదా 'నెగటివో' ముద్రించండి.
సూచనను చూపించు
గుర్తుపై షరతులతో కూడిన `if / else if / else` గొలుసు.
3 ప్రయత్నాల తర్వాత పరిష్కారం లభిస్తుంది
ifలో v := 42ని ప్రకటించడానికి init స్టేట్మెంట్ని ఉపయోగించండి మరియు v >= 18 అయితే మాత్రమే ప్రింట్ చేయండి.
సూచనను చూపించు
సింటాక్స్: `if init; షరతు { ... }`.
3 ప్రయత్నాల తర్వాత పరిష్కారం లభిస్తుంది
ఈ ప్రోగ్రామ్ ఏమి ముద్రిస్తుంది?
x := 10
if x := 3; x > 5 {
fmt.Println("dentro:", x)
} else {
fmt.Println("else:", x)
}
fmt.Println("dopo:", x)రీక్యాప్
- కుండలీకరణాలు లేని పరిస్థితులు, కలుపులు ఎల్లప్పుడూ తప్పనిసరి.
- షరతు తప్పనిసరిగా
boolఅయి ఉండాలి: అవ్యక్త సత్యం లేదు. - Init
if v, err := f(); err == nil { ... }vమరియుerrపరిధిని పరిమితం చేస్తుంది. - initలో షేడోయింగ్: బయటి వేరియబుల్స్ షాడో కాకుండా జాగ్రత్త వహించండి.
- టెర్నరీ లేదు: విస్తరించిన
if/elseని వ్రాయండి.