Golang giống như hầu hết các ngôn ngữ lập trình khác đều có câu lệnh switch. Câu lệnh switch trong Golang cho phép bạn đánh giá một biến hoặc biểu thức theo nhiều trường hợp và thường được sử dụng khi viết nhiều câu lệnh if-else khiến code trông xấu xí và lặp lại.

Trong Go, câu lệnh switch là câu lệnh rẽ nhánh đa hướng, chỉ đạo thực thi hiệu quả dựa trên giá trị (hoặc kiểu) của một biểu thức. Có hai loại câu lệnh switch chính trong Go:
- Expression Switch
- Type Switch
Ví dụ:
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")
    default:
        fmt.Println("Invalid day")
    }
}Cú pháp lệnh switch trong Golang
switch optstatement; optexpression {
case expression1:
    // Khối code
case expression2:                                                          # Expression Switch
    // Khối code
default:
    // Khối code
}
switch var := interfaceValue.(type) {
case type1:
    // Khối code
case type2:                                                                    # Type Switch
    // Khối code
default:
    // Khối code
}Expression Switch
Expression Switch đánh giá một biểu thức và chuyển sang một trường hợp dựa trên giá trị của biểu thức đó. Nếu không có biểu thức nào được cung cấp, switch sẽ mặc định là true.
Cú pháp
switch optstatement; optexpression {
case expression1:
    // Khối code
case expression2:
    // Khối code
default:
    // Khối code
}optstatement: Câu lệnh tùy chọn (ví dụ: khai báo biến).
optexpression: Biểu thức tùy chọn (nếu bỏ qua, mặc định là true).
Ví dụ với lệnh tùy chọn
Ở đây giới thiệu một câu lệnh tùy chọn khai báo một biến day. Câu lệnh switch sau đó đánh giá day theo nhiều trường hợp khác nhau.
package main
import "fmt"
func main() {
    switch day := 4; 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")
    default:
        fmt.Println("Invalid day")
    }
}
Kết quả:
ThursdayVí dụ với Expression tùy chọn
Nếu không có biểu thức nào được chỉ định, câu lệnh switch trong Golang sẽ coi biểu thức là đúng. Điều này cho phép chúng ta sử dụng các điều kiện boolean trong các câu lệnh theo trường hợp.
package main
import "fmt"
func main() {
    day := 4
    switch {
    case day == 1:
        fmt.Println("Monday")
    case day == 4:
        fmt.Println("Thursday")
    case day > 5:
        fmt.Println("Weekend")
    default:
        fmt.Println("Invalid day")
    }
}
Kết quả
ThursdayType Switch
Type Switch được sử dụng để phân nhánh theo kiểu của giá trị giao diện, thay vì giá trị của nó. Điều này đặc biệt hữu ích khi xử lý các biến có kiểu không xác định.
Cú pháp
switch var := interfaceValue.(type) {
case type1:
    // Khối code
case type2:
    // Khối code
default:
    // Khối code
}Ví dụ:
Ví dụ này sử dụng cùng biến day nhưng được gói trong interface{} để minh họa cho việc chuyển đổi kiểu.
package main
import "fmt"
func main() {
    var day interface{} = 4
    switch v := day.(type) {
    case int:
        switch v {
        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")
        default:
            fmt.Println("Invalid day")
        }
    default:
        fmt.Printf("Unknown type: %T\n", v)
    }
}
Kết quả:
Thursday Học IT
 Học IT  
  
  
  
  
  
  
  
  
 










 Công nghệ
 Công nghệ  Nền tảng Web
 Nền tảng Web  Microsoft Word 2013
 Microsoft Word 2013  Microsoft Word 2007
 Microsoft Word 2007  Microsoft Excel 2019
 Microsoft Excel 2019  Microsoft Excel 2016
 Microsoft Excel 2016  Microsoft PowerPoint 2019
 Microsoft PowerPoint 2019  Microsoft PowerPoint 2016
 Microsoft PowerPoint 2016  Google Sheets
 Google Sheets  Học Python
 Học Python  HTML
 HTML  Lập trình Scratch
 Lập trình Scratch  CSS và CSS3
 CSS và CSS3  Lập trình C
 Lập trình C  Lập trình C++
 Lập trình C++  Lập trình C#
 Lập trình C#  Học PHP
 Học PHP  Bootstrap
 Bootstrap  SQL Server
 SQL Server  JavaScript
 JavaScript  Unix/Linux
 Unix/Linux  Khoa học vui
 Khoa học vui  Khám phá khoa học
 Khám phá khoa học  Bí ẩn - Chuyện lạ
 Bí ẩn - Chuyện lạ  Sức khỏe
 Sức khỏe  Vũ trụ
 Vũ trụ  Khám phá thiên nhiên
 Khám phá thiên nhiên  Bảo vệ Môi trường
 Bảo vệ Môi trường  Phát minh Khoa học
 Phát minh Khoa học  Tết 2025
 Tết 2025  Video
 Video  Hướng dẫn
 Hướng dẫn  Công nghệ
 Công nghệ  Khoa học
 Khoa học  Ô tô, Xe máy
 Ô tô, Xe máy  Tổng hợp
 Tổng hợp