외부 또는 주변 함수가 Go 또는 Golang에서 실행을 완료할 때까지 내부 함수 호출을 연기하거나 연기하는 방법은 무엇입니까?
5041 단어 go
외부 또는 주변 함수 실행이 완료될 때까지 내부 함수의 실행을 연기하거나 연기하려면 Go 또는 Golang에서
defer
키워드 다음에 함수 호출을 사용할 수 있습니다.TL; DR
package main
import "fmt"
// function that prints string to the terminal
func sayBye(){
fmt.Println("Bye, Have a nice day!")
}
func main(){
// postpone or defer the `sayBye()` function call until the
// `main()` function execution completes
defer sayBye()
fmt.Println("I will be executed first")
}
예를 들어
sayBye()
함수 실행이 완료된 후에만 사용자에게 Bye, Have a nice day!
를 인쇄하는 main
라는 함수가 있다고 가정해 보겠습니다.이를 위해 먼저 다음과 같이 문자열
sayBye()
을 콘솔이나 터미널에 출력하는 Bye, Have a nice day!
함수를 만들어 봅시다.package main
import "fmt"
// function that prints string to the terminal
func sayBye(){
fmt.Println("Bye, Have a nice day!")
}
이제
main()
함수의 맨 위에서 다음과 같이 defer
키워드 다음에 sayBye()
함수 호출을 사용할 수 있습니다.package main
import "fmt"
// function that prints string to the terminal
func sayBye(){
fmt.Println("Bye, Have a nice day!")
}
func main(){
// postpone or defer the `sayBye()` function call until the
// `main()` function execution completes
defer sayBye()
}
제대로 작동하는지 확인할 수 있는 코드 라인이 많지 않기 때문에 다음과 같이
Println()
문 뒤에 I will be executed first
문자열을 표시하는 또 다른 defer
함수를 추가해 보겠습니다.package main
import "fmt"
// function that prints string to the terminal
func sayBye(){
fmt.Println("Bye, Have a nice day!")
}
func main(){
// postpone or defer the `sayBye()` function call until the
// `main()` function execution completes
defer sayBye()
fmt.Println("I will be executed first")
}
위의 코드를 실행하면 다음과 같이 출력됩니다.
I will be executed first
Bye, Have a nice day!
보시다시피
I will be executed first
문자열이 먼저 평가되더라도 Bye, Have a nice day!
문자열 앞에 표시됩니다.함수 호출을 성공적으로 연기했습니다. 예이 🥳.
The Go Playground에 있는 위의 코드를 참조하십시오.
그게 다야 😃!
이 정보가 유용하다고 생각되면 자유롭게 공유하세요 😃.
Reference
이 문제에 관하여(외부 또는 주변 함수가 Go 또는 Golang에서 실행을 완료할 때까지 내부 함수 호출을 연기하거나 연기하는 방법은 무엇입니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/melvin2016/how-to-postpone-or-defer-an-inner-function-call-until-the-outer-or-surrounding-function-completes-its-execution-in-go-or-golang-2aja텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)