switch در زبان برنامه نویسی گو
با استفاده از دستور swithc میتوان عملکرد چند if… else متوالی را به راحتی پیاده سازی کرد.با توجه به این که go از زبان c اقتباس شده است دستور swithc در این زبان نیز همانند زبان c میباشد.
شکل کلی دستور switch به صورت زیر میباشد
switch condition {
case value1:
statments
case value2:
statments
.
.
.
default:
statments
}
توجه نمائید که اکلاد swithc اجباری میباشد و باید بلافاصله بعد از condition قرار بگیرد.
یک مثال برای دستور switch:
i:=2
swithc i {
case 1:
fmt.Println(“i is one”)
case 2:
fmt.Println(“i is two”)
case 3:
fmt.Println(“i is three”)
default:
fmt.Println(“i is “,i)
}
خروجی قطعه کد بالا i is two خواهد بود.
به مثال دیگری توجه نمائید
i:=9
switch i {
case 1:
fmt.Println(“i is one”)
case 9:
fmt.Prntln(“i is nine”)
case 9:
fmt.Println(i is 9 “)
default:
fmt.println(“i is not exist”)
دقت کنید که خروجی تکه کد فوق فقط i is nine میباشد این یعنی بعد از برقرار شدن شرط یکی از موارد، case های دیگر بررسی نمی شوند.
یک مثال دیگه
i:=0
switch i {
case 1:
fmt.Println(“i is one”)
case 2:
fmt.Println(“i is two”)
default:
fmt.Println(“i: “,i)
خروجی تکه کد بالا i: 0 خواهد بود.در دستور swithc در صورتی که شرط switch با هیچ یک از caseها منطبق نباشدی بلوک default اجرا میشود.
جهت سفارش طراحی وب سایت و انواع پروژههای نرم افزاری با ما تماس بگیرید.
switch بدون شرط:
i:=4
switch {
case i<2:
fmt.Println(“i is lower than 2”)
case i>3:
fmt.Println(“i is more than 3”)
}
خروجی تکه کد بالا i is more than 3 خواهد بود دقت کنید که{…} switch خالی همانند {…}switch true عمل میکنه.این نوع switch برای پیاده سازی if…elseهای متوالی مفید میباشد و موجب میشود کد شما خوانا تر باشد.به مثال زیر توجه نمائید:
packag main
import(
“fmt”
“time”//بستهای برای کار با زمان
)
func main() {
t:=time.Now() //زمان فعلی سیستم را برمیگرداند
swithc {
case t<12:
fmt.Println(“good morning”)
case t<17:
fmt.Println(“good afternoon”)
default:
fmt.Println(“good evening”)
}
}
در این برنامه خط شش زمان سیستم را به متغیر t نسبت میدهد در بلاک سویچ اولین case مقدار t را با ۱۲ مقایسه میکند اگر حاصل این مقایسه true باشد موارد بعدی (caseها و default) اجرا نمیشود و اگر false باشد موارد بعدی مقایسه خواهند شد که اگر یکی از شرطهای case ها حاصلش true باشد اجرا خواهد شد در غیر این صورت defualt اجرا میشود.