Понимание ключевого слова «по умолчанию» в Go: операторы Switch и составные литералы

Ключевое слово «default» в Go используется в двух разных контекстах: как регистр в операторе переключения и как значение в составном литерале. Я объясню оба варианта использования и приведу примеры кода для каждого.

  1. Оператор Switch:
    Случай «по умолчанию» в операторе переключателя выполняется, когда ни одно из других условий случая не выполняется. Вот пример:
package main
import "fmt"
func main() {
    num := 3
    switch num {
    case 1:
        fmt.Println("One")
    case 2:
        fmt.Println("Two")
    default:
        fmt.Println("Default case")
    }
}

В этом примере, если значение numне равно ни 1, ни 2, будет выполнен вариант «по умолчанию» и напечатан «Регистр по умолчанию».

  1. Составной литерал.
    Ключевое слово «default» можно использовать при инициализации составного литерала, такого как структура или массив, чтобы установить значения по умолчанию для полей или элементов. Вот пример:
package main
import "fmt"
type Person struct {
    Name    string
    Age     int
    IsAdult bool
}
func main() {
    defaultPerson := Person{
        Name:    "John Doe",
        Age:     30,
        IsAdult: true,
    }
    emptyPerson := Person{}
// Default values for each field
    fmt.Println(defaultPerson)
    fmt.Println(emptyPerson)
}

В этом примере defaultPersonинициализируется определенными значениями, а emptyPersonинициализируется с использованием нулевых значений по умолчанию для каждого поля.