defer 는 매우 강력한 기능이다.
func 가 끝나고나면 자동으로 무엇을 실행할지 함수안에 적어둘수가 있다.
그게 뭐가 강력하냐고 물을수도 있겠지만
시스템 구조상으로 엄청나게 도움을 줄 수 있다.
이미지를 열거나 파일을 생성하고 나서
defer 로 이미지를 닫거나 파일을 닫거나 API 로 요청을 보내거나 하는 일들을
그냥 defer 하나로 처리할 수 있게 되는것이다.
아래처럼 쓸 수 있다.
func lenAndUpper(name string) (int, string) {
defer fmt.Println("done")
return len(name), strings.ToUpper(name)
}
func main() {
totalLenght, upperName := lenAndUpper("choi")
fmt.Println(totalLenght, upperName)
}
반응형
'Go' 카테고리의 다른 글
Go 언어 - 포인터 , 배열, Map (0) | 2021.06.06 |
---|---|
Go 언어 - Const , Var , func (0) | 2021.06.02 |
Go 언어 - Go 설치하기 (0) | 2021.05.30 |
Go 언어 - go 에 대하여 (0) | 2021.05.30 |