Не могу понять, golang switch case. Как с этим разобраться?

Пользователь

от jaclyn , в категории: Вопросы от знатоков , 4 года назад

Мои познания в Golanh, уперлись в то, что называется switch case. Кто мне может рассказать, об этом? Просто я уперся в golang switch case и не знаю что делать дальше.

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp Pocket

4 ответа

Пользователь

от oleta , 4 года назад

Switch существует для сравнения значения с другими. Пример golang:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
package main

import (
   "fmt"
)

func main() {
   fmt.Println("Здесь вход в пещеру и путь на восток.")
   var command = "зайти внутрь"
   switch command { // Сравнивает case с command
   case "идти на восток":
      fmt.Println("Вы направляетесь к горе.")
   case "зайти в пещеру", "зайти внутрь": // Запятая разделяет список возможных значений
      fmt.Println("Вы находитесь в тускло освещенной пещере.")
   case "прочитать знак":
      fmt.Println("На знаке написано 'Несовершеннолетним вход запрещен'.")
   default:
      fmt.Println("Пока не совсем понятно.")
   }
}


В результате программа выдаст:

1 Здесь вход в пещеру и путь на восток.

2 Вы находитесь в тускло освещенной пещере. 

Пользователь

от alexandra_jones , 4 года назад

Оператор switch создан для организации выбора из множества различных вариантов. Такой себе переключатель, в вашем коде.

Пользователь

от rupert , 4 года назад

Вот еще один пример, работы golang switch

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
package main

import (
   "fmt"
)

func main() {
   var room = "озеро"
   switch { // Выражения для каждого случая
   case room == "пещера":
      fmt.Println("Вы находитесь в тускло освещенной пещере.")
   case room == "озеро":
      fmt.Println("Лед кажется достаточно крепким.")
      fallthrough // Переходит на следующий случай
   case room == "глубина":
      fmt.Println("Вода такая холодная, что сводит кости.")
   }
}


Пользователь

от jairo_breitenberg , 4 года назад

Если нет условия, то он будет как switch true


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
package main

import (
   "fmt"
   "time"
)

func main() {

   t := time.Now()
   switch {
   case t.Hour() < 12:
      fmt.Println("Good morning!")
   case t.Hour() < 17:
      fmt.Println("Good afternoon.")
   default:
      fmt.Println("Good evening.")
   }
}