TGViewer
go-golang girl🙃 (ex-flutter) go-golang girl🙃 (ex-flutter) @dellini_dev · 237 subscribers
Post #500 442
ДЕНЬ 35 ИЗ 100

Ну шо, с наступающим, пацаны и пацанессы...

Даже в праздник не прерываем челлендж. Сегодня чуть-чуть нудно про select.

Оператор select позволяет подпрограмме ожидать выполнения нескольких операций связи.

A select блокируется до тех пор, пока не сможет выполняться одно из его обращений, затем оно выполняет это обращение. Оно выбирает одно случайным образом, если готовы несколько. Оператор select аналогичен оператору switch, но в операторе select оператор case относится к связи, т.е. операции отправки или получения по каналу.

Пример:

package main
import (
"fmt"
"time"
)
func main() {

//выбор по двум каналам

c1 := make(chan string)
c2 := make(chan string)

Каждый канал получит значение через некоторое время для имитации, например, блокирования операций RPC выполнения в параллельных программах.


go func() {
time.Sleep(1 * time.Second)
c1 <- "one"
}()
go func() {
time.Sleep(2 * time.Second)
c2 <- "two"
}()

Мы будем использовать select для ожидания обоих этих значений одновременно, печатая каждое по мере его поступления.



for i := 0; i < 2; i++ {
select {
case msg1 := <-c1:
fmt.Println("received", msg1)
case msg2 := <-c2:
fmt.Println("received", msg2)
}
}
}


Вот такие дела.

Попозже ещё напишу мыслишки свои всякие в отрыве от челленджа...🤡

Роадмап бэкенда: 5% — 5%
Роадмап Go: 36% — 37%
Оценка за день: 4/5
  • ❤ 9
  • 👍 2
  • 🔥 1
More from @dellini_dev
  1. Jun 10, 2024Если кому-то хочется следить за судьбой этой брички, то вот нельзяграм 😺
  2. Jun 10, 2024Принимаю поздравления! Теперь я гордая обладательница Porsche 924 1977 года😮
  3. Jun 3, 2024Так, ну что. Обещанный постик с ответами на вопросы! Что нового, чем занимаешься: Всё ещё…
  4. Jun 1, 2024Точно. У меня же день рождения сегодня!😮 В комментариях можно задать вопросики на любую т…
  5. Apr 11, 2024А ваши дела как...
  6. Apr 2, 2024Экзамен потрачен. Записываюсь на пересдачу🫠
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →