[Go] Naked functions & defer

Yerin·2020년 2월 12일
0

study-go

목록 보기
3/5

Naked Function

이전 포스팅에서 보았던 lenAndUpper() 함수에서 보면 return을 써주고 바로 옆에 리턴값들을 써주었다. 그런 방법도 있지만 다음과 같이 쓸 수도 있다.

length와 uppercase 변수를 선언해주고 그냥 return만 해도 같은 결과가 나온다. 이처럼 인자값이 없는return은 이미 이름이 정의된 리턴값들을 리턴하고 이것을 'naked return'이라고 한다. 예시처럼 짧은 함수에서는 쓰이기 좋지만 긴 함수에서는 가독성을 떨어뜨릴 수 있으므로 주의해야한다.

defer

  • 지연실행 defer
    defer 키워드는 함수안에서 특정 문장 혹은 함수를 나중에 (defer를 호출하는 함수가 리턴하기 직전에) 실행하게 한다. 특정 위치나 형태가 필요하지 않고 함수 앞에만 명시해주면 된다.

위의 코드를 실행하면 다음과 같이 출력이 된다.

I'm done
5, YERIN

java 에서 try~finally의 역할과 비슷하다고 한다.(아직자바모름)

좀 더 이해를 돕자면, 프로그램에 분기가 많아서 '예외처리'가 많아 복잡할때 유용하게 사용한다. 코드 흐름 중간에 에러가 발생해도 마지막에 꼭 실행한다.

profile
졸꾸 !!!

0개의 댓글