go언어
글 수 53
go언어의 함수 사용법을 보면 C언어와 유사해도 색다른 점이 많습니다.
C언어도 매우 간결하지만, go언어는 한술 더 뜬다고 할까요?
예를 들어 함수 이름 없이도 정의할 수 있습니다. 아래 처럼 말이죠.
package main
import "fmt"
func main(){
fmt.Println( func( x, y int)(int, int){
return y, x
}( 1, 2) )
}
함수 이름이 없으니 함수를 정의해 놓고 바로 인수를 전달했습니다.
이와 같은 함수 호출 특징을 defer에서 응용할 수 있습니다.
defer은 함수 실행을 예약하는 것으로 아래와 같이 코드를 구성하면
main() 함수가 종료할 때 자동으로 실행해야 하는 일을 수행할 수 있습니다.
package main
import "fmt"
func main(){
defer func(){
fmt.Println( "함수 종료 시 반드시 처리")
} ()
fmt.Println( "함수 시작");
}
main() 함수가 종료될 때 실행할 내용을 함수로 담았지만, 굳이 함수 이름을 생각할 필요가 없죠.
함수가 종료될 때 응용해 보세요.