GO의 신비를 잠금 해제합니다 : 예와 관용구
그리고 그 뉘앙스. 이 기사는 당신의 마스터리를 강화하기 위해 조명 예제와 관용구를 제공하는 것을 목표로합니다.
lock(l) defer unlock(l)하나의 놀라운 관용구는 "연기"진술입니다. 이름에서 알 수 있듯이, "연기"는 주변 함수가 반환 될 때까지 함수의 실행을 연기합니다. 이를 통해 고도로 효율적이고 예측 가능한 방식으로 정리 작업을 수행하거나 오류를 처리 할 수 있습니다.
예를 들어, 잠금 장치를 획득하고 반환하기 전에 해제해야 할 기능을 고려하십시오. "Defer"를 사용하면 잠금 해제를 편리하게 예약 할 수 있습니다.
lock(l) defer unlock(l)lock (l) 잠금 해제 (l)
"Defer"는 Lifo (마지막, 첫 번째) 동작을 나타냅니다. 루프를 반복하고 "연기"인쇄 할 때, 출력은 주변 함수가 반환되기 전에 역 순서로 생성됩니다.
lock(l) defer unlock(l)i : i : = 0; i & lt; = 3; 나 { FMT.Print 연기 (I) } // output : 3 2 1 0
예외 처리 영역에서 "연기"는 관용적 접근 방식으로 나타났습니다. "연기"기능으로 코드를 래핑하면 공황을 우아하게 처리하고 발신자에게 제어를 반환 할 수 있습니다.
func f () {. 연기 func () { r : = 복구 (); r! = nil { fmt.println ( "F에서 회수", r) } } () G (0) }
예제에서 알 수 있듯이, 깊게 중첩 된 기능에서 예외가 발생하더라도 "연기"메커니즘은 적절한 정리 및 오류보고를 보장합니다. GO 개발 경험. Go의 힘은 구문뿐만 아니라 관용구에도 있으며, 광범위한 프로그래밍 문제에 대한 우아하고 효율적인 솔루션을 가능하게합니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3