개발일기

Go - defer 호출이란? 본문

프로그래밍 언어/Go

Go - defer 호출이란?

Flashback 2022. 8. 7. 19:53
728x90
반응형

1. defer란?

defer란 특정한 함수를 실행할 때, 해당 부분을 함수가 종료되기 직전에 실행시키는 기능을 뜻한다.

 

2. defer 정의법

defer test() // test는 함수명

defer test(a int, b int) // 매개변수로 추가할 수 있다.

함수를 정의할 때와 똑같은 방식이다. 함수를 정의했을 때 사용했던 func 대신에 defer라는 키워드를 사용한다는게 다른점이다.

 

3. 사용법

package main

import "fmt"

func test() {
    fmt.Println("test 함수 실행")
}

func initial() {
    fmt.Println("init 함수 실행")
}

func main() {
    defer test()
    initial()
    initial()
    initial()
}

/*
    실행 결과 : 
    init 함수 실행
    init 함수 실행
    init 함수 실행
    test 함수 실행

    Program exited.
*/

main 함수가 끝나기 직전에 실행시킬 함수명 앞에 defer라는 키워드를 붙히면 된다. defer 키워드가 포함되어 있는 경우, 해당 구문이 함수의 호출 부분이 맨 첫 부분에 입력되있더라도 가장 마지막에 실행시킨다.

728x90
반응형

'프로그래밍 언어 > Go' 카테고리의 다른 글

Go - 포인터란 무엇인가  (0) 2022.08.14
Go - panic() / recover() 예외처리  (0) 2022.08.09
Go - 함수의 정의 및 사용법  (0) 2022.08.03
Go - Map이란?  (0) 2022.03.29
Go - Slice의 len과 cap  (0) 2022.03.16
Comments