inflearn logo
강의

Course

Instructor

GO Language Programming Core Basics Introduction Course, Easy and Quick to Complete

이것도 closure인가요?

238

suhwan lim

5 asked

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)
}

 

go

Answer 1

0

niceman

네 맞습니다.

해당 영역의 스코프의 변수의 값을 저장하고 활용하고 있네요!

고 인터페이스 관련

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