이것도 closure인가요?
238
5 asked
안녕하세요 선생님.
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)
}
Answer 1
고 인터페이스 관련
0
69
2
Join함수 사용이유가 궁금합니다
0
54
1
vscode 설정
0
126
2
arm64
0
202
2
undefined 에러 : UndeclaredImportedName
0
342
1
godoc 에러 관련
0
206
1
package is not in std 오류
0
985
1
맵 예제 코드가 바이러스 검사에 걸려요
0
234
1
for 반복문에서 break와 continue 차이점
0
224
1
후치연산 관련 질문입니다.
0
197
1
package관리에 질문이 있습니다.
0
281
1
go channel 에제에서 질문이 있습니다.
0
192
1
golang 질문
0
310
1
재귀 함수 관련하여 질문이 있습니다.
0
346
1
atom 서비스 종료 관련
0
403
1
vscode 환경설정 업데이트 부탁드립니다
1
403
2
waitGroup.Done을 지연 시키는 방식
0
449
1
첫 번째 예제 질문있습니다.
0
263
1
2개씩 체크가 되는 이유가 궁금합니다.
0
328
1
go 표준 코드 컨벤션이 있나요?
0
825
1
slice에서 make 궁금한 게 있습니다.
1
262
1
import 관리는 어떻게 하나요?
0
317
1
개발환경설정 질문드립니다.
0
486
1
짧은 선언으로 변수 여러개를 만들때
0
240
1

