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

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

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp Pocket
29 мая 2020 г., 18:07

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

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

29 мая 2020 г., 18:16

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

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


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 Вы находитесь в тускло освещенной пещере. 

30 мая 2020 г., 16:55

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

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

package main

 

import (

               "fmt"

)

 

func main() {

               var room = "озеро"

 

               switch { // Выражения для каждого случая                                             

               case room == "пещера":

                  fmt.Println("Вы находитесь в тускло освещенной пещере.")

               case room == "озеро":

                  fmt.Println("Лед кажется достаточно крепким.")

           fallthrough // Переходит на следующий случай                                    

               case room == "глубина":

           fmt.Println("Вода такая холодная, что сводит кости.")

               }

}

30 мая 2020 г., 17:04

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

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


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.")

               }

}

30 мая 2020 г., 17:18