Statement fallthrough digunakan untuk menampilkan case yang terpenuhi value-nya dan case setelahnya.
packagemainimport"fmt"funcmain() { dayOfWeek :=5switch dayOfWeek {case1: fmt.Println("Sunday")fallthroughcase2: fmt.Println("Monday")fallthroughcase3: fmt.Println("Tuesday")fallthroughcase4: fmt.Println("Wednesday")fallthroughcase5: fmt.Println("Thursday")fallthroughcase6: fmt.Println("Friday")fallthroughcase7: fmt.Println("Saturday")fallthroughdefault: fmt.Println("Invalid day")// fallthrough // -> cannot fallthrough final case in switch }}
Thursday
Friday
Saturday
Invalid day
3. Switch dengan Multiple Case
Switch jenis ini memiliki beberapa value untuk setiap case-nya.
packagemainimport"fmt"funcmain() { day :="Monday"switch day {case"Monday", "Tuesday", "Wednesday", "Thursday", "Friday": fmt.Println("Work Day")case"Saturday", "Sunday": fmt.Println("Weekend") }}
Work Day
4. Switch tanpa Expression
Switch jenis ini bisa digunakan dengan relational operator (>, <, >=, <=, ==, &&, atau !=).
packagemainimport"fmt"funcmain() { day :="Monday"switch {case day =="Monday"|| day =="Tuesday"|| day =="Wednesday"|| day =="Thursday"|| day =="Friday": fmt.Println("Work Day")case day =="Saturday"|| day =="Sunday": fmt.Println("Weekend") }}
Type switch digunakan untuk memperoleh tipe data dari suatu nilai dalam interface kosong. Type switch memiliki format seperti di bawah ini. Banyaknya case dapat disesuaikan sesuai kebutuhan.
packagemainimport"fmt"funcmain() {var user any= []string{"member_01", "member_02", "member_03"} arr := user.([]string)switch result := user.(type) {casestring: fmt.Printf("String", result)caseint: fmt.Printf("Integer", result)case []string:for _, v :=range arr { // cannot range over user (variable of type any) fmt.Print(v) } }}