단일 Case 문 내에서 수신 및 보내기
Go에서는 동일한 Select Case 문 내에서 수신 및 전송 작업을 결합할 수 있습니다. 이 코드 조각에서 볼 수 있듯이:
for { select { ... case ch2 <- (<-ch1): ... } }
이 코드는 채널 ch1의 결과를 전달하는 것을 목표로 합니다. ch2 채널로. 그러나 ch1에서 수신하거나 ch2로 전송하는 작업 중에서 select 문이 on을 선택하는지에 대한 의문이 제기됩니다.
선택 프로세스
Go에서 설명한 대로 문서화, select 문 입력 시:
주어진 의미 코드
제공된 예에서 다음이 발생합니다.
case ch2 <- (<-ch1):
따라서 select 문은 수신된 값을 ch1에서 ch2로 보낼지 아니면 다른 경우를 처리할지 선택합니다.
부작용
ch1의 수신 작업이 최종적으로 선택되지 않더라도 값은 여전히 소비되고 폐기됩니다. 이 동작은 중요할 수 있으므로 이 패턴을 사용할 때 고려해야 합니다.
위 내용은 `select`는 `case ch2에서 수신 또는 전송을 선택합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!