سوئیچ (Switch)
وقتی چند حالت داری، از «سوئیچ (Switch)» استفاده کن. یعنی بر اساس مقدار، یکی از چند بلوک اجرا می شود. مثل انتخاب کلاس بر اساس شماره.
سینتکس سوئیچ
در Go، فقط case مطابق اجرا می شود. پس به break نیاز نیست.
switch expr {
case x:
// این بلوک اجرا می شود
case y:
// این بلوک اجرا می شود
default:
// وقتی هیچ case مطابق نیست
}
مثال: نام روز با عدد
یک عدد روز داری. سپس سوئیچ، نام روز را چاپ می کند.
package main
import (
"fmt"
)
func main() {
day := 4
switch day {
case 1:
fmt.Println("Monday")
case 2:
fmt.Println("Tuesday")
case 3:
fmt.Println("Wednesday")
case 4:
fmt.Println("Thursday")
case 5:
fmt.Println("Friday")
case 6:
fmt.Println("Saturday")
case 7:
fmt.Println("Sunday")
}
}
کلمه default
اگر هیچ case مطابق نبود، default اجرا می شود. این مسیر امن است.
package main
import (
"fmt"
)
func main() {
day := 8
switch day {
case 1:
fmt.Println("Monday")
case 2:
fmt.Println("Tuesday")
case 3:
fmt.Println("Wednesday")
case 4:
fmt.Println("Thursday")
case 5:
fmt.Println("Friday")
case 6:
fmt.Println("Saturday")
case 7:
fmt.Println("Sunday")
default:
fmt.Println("Not a weekday")
}
}
هماهنگی نوع در case
نوع case باید با عبارت سوئیچ هماهنگ باشد. وگرنه خطا می گیری.
package main
import (
"fmt"
)
func main() {
a := 3
switch a {
case 1:
fmt.Println("a is one")
case "b":
fmt.Println("a is b")
}
}
گام های عملی
- یک متغیر (Variable) مقدار بده.
- سوئیچ را روی همان متغیر بنویس.
- case ها و یک default اضافه کن.
نکته: برای تصمیم های چندشاخه، سوئیچ خواناتر از if زنجیره ای است.
برای مرور شرط ها، صفحه شرط ها را ببین. همچنین این لینک داخلی با کلمه کانونی: سوئیچ.
جمع بندی سریع
- Go به break نیاز ندارد.
- default مسیر پیش فرض است.
- نوع case باید هماهنگ باشد.
- سوئیچ کد را خواناتر می کند.