외부 또는 주변 함수가 Go 또는 Golang에서 실행을 완료할 때까지 내부 함수 호출을 연기하거나 연기하는 방법은 무엇입니까?

5041 단어 go
Originally posted here!

외부 또는 주변 함수 실행이 완료될 때까지 내부 함수의 실행을 연기하거나 연기하려면 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에 있는 위의 코드를 참조하십시오.

그게 다야 😃!

이 정보가 유용하다고 생각되면 자유롭게 공유하세요 😃.

좋은 웹페이지 즐겨찾기