در جست و جوی خود
7.آموزش GO با مثال (شرط switch)
عبارات Switch شروطی با شاخه های زیاد و و صریح هستند.
package main
import "fmt"
import "time"
func main() {
اینجا یه switch
پایه داریم:
i := 2
fmt.Print("Write ", i, " as ")
switch i {
case 1:
fmt.Println("one")
case 2:
fmt.Println("two")
case 3:
fmt.Println("three")
}
شما میتونید چند تا شرط رو با علامت کاما "," در یک case
از هم جدا کنید. در این مثال ما از گزینه اختیاریdefault
به خوبی نمایش دادیم که درصورت برقرار نبودن شرط case
اجرا میشود.
switch time.Now().Weekday() {
case time.Saturday, time.Sunday:
fmt.Println("It's the weekend")
default:
fmt.Println("It's a weekday")
}
شرط switch
بدون یک عبارت میتونه جایگزین صریحی برای شرط if/else باشه. اینجا همچنین ما نشون میدیم که چجوری شروط case
میتونن غیر-ثابت باشن.
t := time.Now()
switch {
case t.Hour() < 12:
fmt.Println("It's before noon")
default:
fmt.Println("It's after noon")
}
یک type switch
میتونه نوع داده یا متغیر رو مقایسه کنه. شما میتونید با این روش نوع داده و مقدار خودتونو رو کشف کنید. در این مثال متغییر t یکی از شرط های عبارت سوییچ مارو دارا هست.
whatAmI := func(i interface{}) {
switch t := i.(type) {
case bool:
fmt.Println("I'm a bool")
case int:
fmt.Println("I'm an int")
default:
fmt.Printf("Don't know type %T\n", t)
}
}
whatAmI(true)
whatAmI(1)
whatAmI("hey")
}
$ go run switch.go
Write 2 as two
It's a weekday
It's after noon
I'm a bool
I'm an int
Don't know type string
<<شرط if/else------------------------------------------آرایه ها>>
مطلبی دیگر از این انتشارات
28.آموزش GO با مثال(زمان تأخیر)
مطلبی دیگر از این انتشارات
17.آموزش GO با مثال(اشاره گرها)
مطلبی دیگر از این انتشارات
24.آموزش GO با مثال(بافر کردن کانال)