"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > '연기'진술은 변수 선언에 따라 GO의 반환 값에 어떤 영향을 미칩니 까?

'연기'진술은 변수 선언에 따라 GO의 반환 값에 어떤 영향을 미칩니 까?

2025-03-23에 게시되었습니다
검색:799

How Do `defer` Statements Affect Return Values in Go Based on Variable Declaration?

다음 코드를 고려하십시오.

func c (i int) int { FUNC () {i} () 반환 i } func c1 () (i int) { FUNC () {i} () 반환 i } func c2 () (i int) { FUNC () {i} () 반환 2 }

c (0)의 입력 매개 변수이기 때문에 반환 된 값은 연기 된 증분에 영향을받지 않기 때문에 0의 인쇄 출력에 영향을받지 않습니다. 따라서, 지연된 증분은 반환 된 값에 영향을 미치며 1의 출력을 제공합니다.

그러나 C2 ()에서는 2로 명시 적으로 반환 되더라도 지연된 증분은 결과 매개 변수를 수정하여 결과 매개 변수를 수정합니다. 결과를 지정하는 명령문은 지연된 기능이 실행되기 전에 결과 매개 변수를 설정합니다.

명명 된 결과 매개 변수가있는 함수의 경우 반환 된 값은 항상 변수의 값이지만 리턴 문은 이러한 매개 변수에 새 값을 할당 할 수 있습니다. 지연된 함수는 리턴 명령문 후에 이러한 매개 변수를 추가로 수정할 수 있습니다. 따라서 가변적 인 선언과 지연된 기능 수정이 최종 반환 된 값에 미치는 영향을 고려하는 것이 중요합니다.
            
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3