코스 이동: 선택
select
문에 대해 알아봅니다.select
문은 코드를 차단하고 여러 채널 작업을 동시에 기다립니다.A
select
는 케이스 중 하나가 실행될 때까지 차단한 다음 해당 케이스를 실행합니다. 여러 개가 준비되면 무작위로 하나를 선택합니다.package main
import (
"fmt"
"time"
)
func main() {
one := make(chan string)
two := make(chan string)
go func() {
time.Sleep(time.Second * 2)
one <- "One"
}()
go func() {
time.Sleep(time.Second * 1)
two <- "Two"
}()
select {
case result := <-one:
fmt.Println("Received:", result)
case result := <-two:
fmt.Println("Received:", result)
}
close(one)
close(two)
}
switch
와 마찬가지로 select
에도 다른 케이스가 준비되지 않은 경우 실행되는 기본 케이스가 있습니다. 이렇게 하면 차단 없이 보내거나 받을 수 있습니다.func main() {
one := make(chan string)
two := make(chan string)
for x := 0; x < 10; x++ {
go func() {
time.Sleep(time.Second * 2)
one <- "One"
}()
go func() {
time.Sleep(time.Second * 1)
two <- "Two"
}()
}
for x := 0; x < 10; x++ {
select {
case result := <-one:
fmt.Println("Received:", result)
case result := <-two:
fmt.Println("Received:", result)
default:
fmt.Println("Default...")
time.Sleep(200 * time.Millisecond)
}
}
close(one)
close(two)
}
빈
select {}
이 영원히 차단된다는 사실을 아는 것도 중요합니다.func main() {
...
select {}
close(one)
close(two)
}
이 문서는 Github에서 사용할 수 있는 내 오픈 소스Go Course의 일부입니다.
카란프라탑싱 / 고 코스
Go 프로그래밍 언어의 기본 및 고급 기능을 마스터하세요.
코스로 이동
이 과정에 오신 것을 환영합니다. Go를 배워 주셔서 감사합니다. 이 과정이 훌륭한 학습 경험을 제공하기를 바랍니다.
이 과정은 mywebsite 및 onEducative.io에서도 사용할 수 있습니다.
목차
시작하기
제1장
제2장
제3장
제4장
부록
이동이란 무엇입니까?
Go(Golang이라고도 함)는 2007년 Google에서 개발하고 2009년에 오픈 소스로 공개된 프로그래밍 언어입니다.
단순성, 신뢰성 및 효율성에 중점을 둡니다. 정적으로 유형이 지정되고 컴파일된 언어의 효율성, 속도 및 안전성을 용이성과 결합하도록 설계되었습니다.
View on GitHub
Reference
이 문제에 관하여(코스 이동: 선택), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/karanpratapsingh/go-course-select-4d9g
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(코스 이동: 선택), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/karanpratapsingh/go-course-select-4d9g텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)