-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
이것도 closure인가요?
22.07.27 13:07 작성 조회수 128
0
안녕하세요 선생님.
go에서 closure를 처음 접하였고 아직 모르는 부분이 있어 이렇게 질문드리게 되었씁니다.
익명함수로 외부에 있는 변수에 접근하는게 가능한 이유는 go가 closure를 지원하기 때문인가요?
밑의 defer를 예로하면 2번은 closure로 s 에 접근하고 있고 3번은 파라메타로 접근이라고 이해하면 될까요?
package main
import (
"errors"
"fmt"
)
type stmt struct {}
func (s *stmt) close() error{
return errors.New("error occuerd!")
}
func main() {
s := stmt{}
// 1번
defer s.close()
// 2번
defer func() {
err := s.close()
if err != nil {
fmt.Println(err)
}
}()
// 3번
defer func(s stmt) {
err := s.close()
if err != nil {
fmt.Println(err)
}
}(s)
}
답변을 작성해보세요.
0
답변 1