채널이 참조에 의해 암시적으로 전달됩니까?
Go 투어는 전달 메커니즘에 대한 의문을 제기하는 채널의 예를 제공합니다. 채널을 sum 함수에 전달하면 함수 내에서 변경된 사항이 유지되어 암시적 참조 전달 가능성이 열려 있습니다.
설명
기술적으로 채널은 make가 효과적으로 포인터 역할을 하는 힙 할당 메모리를 생성하기 때문에 전달되면 복사됩니다. 그러나 이 포인터는 노출되지 않으므로 채널을 참조 유형으로 처리할 수 있습니다.
사양에서는 내장 make 함수가 T(*T 아님) 유형의 값을 반환하고 메모리를 초기화한다고 명시합니다. 채널과 함께 사용하면 make는 채널을 초기화하고 참조 유형으로 사용할 수 있게 만듭니다.
의미
이 동작은 make를 사용하여 생성된 채널을 함수로 전달할 때 , 기본 데이터를 복사하지 않고도 읽고 쓸 수 있습니다.
참조 유형과 값 유형
Go에서는 다음 유형이 참조로 전달됩니다.
숫자, 부울, 구조체와 같은 데이터 유형은 함수에 전달될 때 복사됩니다.
위 내용은 Go 채널은 참조 또는 값으로 전달됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!