[Tutorial] Go by Example: Switch

Câu lệnh switch hay switch statement là một loại cấu trúc điều khiển giúp lập trình viên có thể dễ dàng kiểm tra biểu thức điều kiện với nhiều giá trị cho trước thay vì phải dùng elseelseif nhiều lần.

package main

import (
	"fmt"
	"time"
)

func main() {

	// `switch` cơ bản.
	i := 2
	fmt.Print("Write ", i, " as ")
	switch i {
	case 1:
		fmt.Println("one")
	case 2:
		fmt.Println("two")
	case 3:
		fmt.Println("three")
	}

	// Bạn có thể sử dụng dấu phẩy để phân tách nhiều biểu thức
	// trong cùng một câu lệnh `case`. Chúng tôi cũng sử dụng
	// trường hợp tùy chọn `default` trong ví dụ này.
	switch time.Now().Weekday() {
	case time.Saturday, time.Sunday:
		fmt.Println("It's the weekend")
	default:
		fmt.Println("It's a weekday")
	}

	// `switch` không có biểu thức là một cách thay thế để 
	// diễn đạt if/else. Ở đây chúng tôi cũng chỉ ra rằng 
	// các biểu thức `case` có thể không phải là hằng số.
	t := time.Now()
	switch {
	case t.Hour() < 12:
		fmt.Println("It's before noon")
	default:
		fmt.Println("It's after noon")
	}

	// Kiểu `switch` so sánh các kiểu thay vì các giá trị. 
	// Bạn có thể sử dụng điều này để khám phá type của 1 interface.
	// Trong ví dụ này, biến `t` sẽ có kiểu tương ứng với mệnh đề của nó.
	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")
}

Source:

Ví dụ tiếp theo: Arrays