Data Base/Go

[Golang] defer

์ฝ”๋”ฉํ•˜๋Š” ๋ถ•์–ด 2021. 11. 1. 15:06
๋ฐ˜์‘ํ˜•

defer๋ฌธ์€ ์ž์‹ ์„ ๋‘˜๋Ÿฌ์‹ผ ํ•จ์ˆ˜๊ฐ€ ์ข…๋ฃŒํ•  ๋•Œ๊นŒ์ง€ ์–ด๋– ํ•œ ํ•จ์ˆ˜์˜ ์‹คํ–‰์„ ์—ฐ๊ธฐํ•œ๋‹ค.

์—ฐ๊ธฐ๋œ ํ˜ธ์ถœ์˜ ์ธ์ž๋Š” ์ฆ‰์‹œ ํ‰๊ฐ€๋˜์ง€๋งŒ, ๊ทธ ํ•จ์ˆ˜ ํ˜ธ์ถœ์€ ์ž์‹ ์„ ๋‘˜๋Ÿฌ์‹ผ ํ•จ์ˆ˜๊ฐ€ ์ข…๋ฃŒํ•  ๋•Œ๊นŒ์ง€ ์ˆ˜ํ–‰๋˜์ง€ ์•Š๋Š”๋‹ค.

 

์˜ˆ์ œ

package main

import "fmt"

func main() {
	defer fmt.Println("world")

	fmt.Println("hello")
}

 

 

 

์—ฐ๊ธฐ๋œ ํ•จ์ˆ˜ ํ˜ธ์ถœ๋“ค์€ ์Šคํƒ์— ์Œ“์ธ๋‹ค.

ํ•œ ํ•จ์ˆ˜๊ฐ€ ์ข…๋ฃŒ๋  ๋•Œ ๊ทธ๊ฒƒ์˜ ์—ฐ๊ธฐ๋œ ํ•จ์ˆ˜๋“ค์€ ํ›„์ž…์„ ์ถœ ์ˆœ์„œ๋กœ ์ˆ˜ํ–‰๋œ๋‹ค.

 

์˜ˆ์ œ

package main

import "fmt"

func main() {
	fmt.Println("counting")

	for i := 0; i < 10; i++ {
		defer fmt.Println(i)
	}

	fmt.Println("done")
}

 

 

 

 

[์ฐธ๊ณ  ์‚ฌ์ดํŠธ - a Tour of Go]

๋ฐ˜์‘ํ˜•