شرط switch
دستور switch در Go: case های چندگانه، switch بدون عبارت، fallthrough و Type Switch.
دستور switch
switch جایگزین تمیزتر برای زنجیرههای طولانی if...else است:
day := 3
switch day {
case 1:
fmt.Println("شنبه")
case 2:
fmt.Println("یکشنبه")
case 3:
fmt.Println("دوشنبه")
default:
fmt.Println("روز نامعتبر")
}
switch هوشمندتر در Go!
برخلاف C/Java، در Go هر case بهطور خودکار شکسته میشود (break خودکار) — نیازی به نوشتن break نیست!
چند مقدار در یک case
day := 6
switch day {
case 6, 7: ← چند مقدار با کاما
fmt.Println("آخر هفته")
default:
fmt.Println("روز کاری")
}
switch بدون عبارت (switch true)
مثل زنجیره if...else if اما تمیزتر:
hour := 14
switch {
case hour < 12:
fmt.Println("صبح بخیر")
case hour < 18:
fmt.Println("بعدازظهر بخیر")
default:
fmt.Println("شب بخیر")
}
fallthrough — ادامه به case بعدی
اگر خواستید رفتار C را داشته باشید:
switch x := 1; x {
case 1:
fmt.Println("یک")
fallthrough ← به case بعدی هم میرود
case 2:
fmt.Println("دو")
}
Type Switch — بررسی نوع
برای بررسی نوع مقادیر اینترفیس:
var val interface{} = 42
switch v := val.(type) {
case int:
fmt.Println("عدد صحیح:", v)
case string:
fmt.Println("رشته:", v)
case bool:
fmt.Println("بولی:", v)
default:
fmt.Println("نوع ناشناخته")
}
switch روی رشتهها
lang := "go"
switch lang {
case "go", "golang":
fmt.Println("زبان گو 🐹")
case "python":
fmt.Println("پایتون 🐍")
case "javascript":
fmt.Println("جاوااسکریپت")
}
این مبحث بخشی از دوره آموزش کامل گو است.