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 اجرا می‌شود.

دیدگاه خود را بنویسید