Menu
Coddy logo textTech

Switch с выражениями

Часть раздела Основы путешествия по GO на Coddy — урок 40 из 109.

Давайте изучим выражения switch в Go, которые позволяют нам вычислять значение непосредственно в операторе switch.

Сначала давайте посмотрим, как использовать оператор switch с выражением, чтобы проверить, является ли число положительным, отрицательным или нулем:

num := -5
switch {
case num > 0:
    fmt.Println("Positive number")
case num < 0:
    fmt.Println("Negative number")
default:
    fmt.Println("Zero")
}

После выполнения этого кода программа выведет на экран:

Negative number

Обратите внимание, что мы используем switch { без значения после него. Это означает, что Go будет вычислять каждое выражение case как логическое условие. Так как num равно -5, второй case num < 0 вычисляется как true, поэтому выводится "Negative number".

Мы также можем инициализировать переменную прямо в операторе switch. Давайте посмотрим, как это работает:

switch num := -5; {
case num > 0:
    fmt.Println("Positive number")
case num < 0:
    fmt.Println("Negative number")
default:
    fmt.Println("Zero")
}

После выполнения этого кода мы получим тот же результат:

Negative number

В этом примере мы объявили и инициализировали num непосредственно в операторе switch. Точка с запятой отделяет инициализацию от выражения switch (которое здесь пустое). Это делает наш код более компактным, сохраняя при этом ту же функциональность.

challenge icon

Задание

Новичок
В этом испытании вы попрактикуетесь в использовании простого выражения switch в Go. Вам необходимо дополнить код, чтобы определить описание дня на основе его названия, используя оператор switch.

Переменная dayName уже определена со значением "Wednesday". Ваша задача — использовать выражение switch, чтобы установить значение переменной description в:
- "Start of the week" для Monday
- "Midweek" для Wednesday
- "Almost weekend" для Friday
- "Weekend" для Saturday или Sunday
- "Regular day" для любого другого дня

Шпаргалка

Выражения switch в Go позволяют вычислять условия непосредственно в операторе switch.

Используйте switch { без значения для вычисления логических выражений в каждом кейсе:

num := -5
switch {
case num > 0:
    fmt.Println("Positive number")
case num < 0:
    fmt.Println("Negative number")
default:
    fmt.Println("Zero")
}

Вы можете инициализировать переменную непосредственно в операторе switch, используя точку с запятой для отделения инициализации от выражения switch:

switch num := -5; {
case num > 0:
    fmt.Println("Positive number")
case num < 0:
    fmt.Println("Negative number")
default:
    fmt.Println("Zero")
}

Попробуйте сами

package main

import "fmt"

func main() {
	// Название дня уже определено
	dayName := "Wednesday"
	
	// Переменная для хранения описания
	var description string
	
	// TODO: Напишите оператор switch, который устанавливает описание на основе dayName
	// Для Monday: "Start of the week"
	// Для Wednesday: "Midweek"
	// Для Friday: "Almost weekend"
	// Для Saturday или Sunday: "Weekend"
	// Для любого другого дня: "Regular day"
	
	
	// Вывод результата
	fmt.Printf("%s is %s\n", dayName, description)
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы