«closures» 태그된 질문

클로저는 정의 된 범위에서 변수를 참조 (폐쇄)하는 일류 함수입니다. 정의 범위가 끝난 후에도 클로저가 계속 존재하면 클로저가 닫히는 변수도 계속 존재합니다.

9
C #의 루프에서 변수를 캡처
C #에 대한 흥미로운 문제를 만났습니다. 아래와 같은 코드가 있습니다. List<Func<int>> actions = new List<Func<int>>(); int variable = 0; while (variable < 5) { actions.Add(() => variable * 2); ++ variable; } foreach (var act in actions) { Console.WriteLine(act.Invoke()); } 0, 2, 4, 6, 8을 출력 할 것으로 예상하지만 실제로는 …

6
익명의 재귀 PHP 함수
재귀 적이며 익명의 PHP 함수를 사용할 수 있습니까? 이것은 작동시키려는 시도이지만 함수 이름을 전달하지 않습니다. $factorial = function( $n ) use ( $factorial ) { if( $n <= 1 ) return 1; return $factorial( $n - 1 ) * $n; }; print $factorial( 5 ); 또한 이것이 계승을 구현하는 나쁜 …


8
var self = this?
이벤트 핸들러에 대한 콜백의 범위 변경으로 인스턴스 메소드를 사용 this에서 "내 예" 로 "바로 콜백이라고 무엇이든을" . 내 코드는 다음과 같습니다 function MyObject() { this.doSomething = function() { ... } var self = this $('#foobar').bind('click', function(){ self.doSomethng() // this.doSomething() would not work here }) } 작동하지만 이것이 최선의 방법입니까? 나에게 …

5
스위프트 선택적 이스케이프 폐쇄 매개 변수
주어진: typealias Action = () -> () var action: Action = { } func doStuff(stuff: String, completion: @escaping Action) { print(stuff) action = completion completion() } func doStuffAgain() { print("again") action() } doStuff(stuff: "do stuff") { print("swift 3!") } doStuffAgain() 유형 의 completion매개 변수 (및 action) 를 만들고 Action?유지하는 방법이 …

11
3 개의 함수를 차례로 호출하려면 어떻게해야합니까?
이 함수를 하나씩 호출해야하는 경우 $('#art1').animate({'width':'1000px'},1000); $('#art2').animate({'width':'1000px'},1000); $('#art3').animate({'width':'1000px'},1000); jQuery에서 다음과 같은 작업을 수행 할 수 있다는 것을 알고 있습니다. $('#art1').animate({'width':'1000px'},1000,'linear',function(){ $('#art2').animate({'width':'1000px'},1000,'linear',function(){ $('#art3').animate({'width':'1000px'},1000); }); }); 그러나 jQuery를 사용하지 않고 전화를 걸고 싶다고 가정 해 봅시다. some_3secs_function(some_value); some_5secs_function(some_value); some_8secs_function(some_value); 실행하기 위해이 함수를 호출하고 호출이 some_3secs_function끝난 후 실행 한 다음 some_5secs_function호출이 종료 된 …

9
어휘 폐쇄는 어떻게 작동합니까?
Javascript 코드에서 어휘 폐쇄와 관련된 문제를 조사하는 동안 Python 에서이 문제가 발생했습니다. flist = [] for i in xrange(3): def func(x): return x * i flist.append(func) for f in flist: print f(2) 이 예제는주의해서 피한다 lambda. "4 4 4"를 인쇄하는데 이는 놀랍습니다. "0 2 4"를 기대합니다. 이 동등한 Perl 코드가 …

6
Swift @autoclosure를 사용하는 방법
assertSwift에서을 쓸 때 첫 번째 값이 다음과 같이 입력되었음을 알았습니다. @autoclosure() -> Bool 를 T통해 존재를 테스트하기 위해 일반 값 을 반환하는 오버로드 된 메소드 를 사용합니다 LogicValue protocol. 그러나 당면한 문제를 엄격히 고수하십시오. @autoclosure를 반환하는 것으로 보입니다 Bool. 매개 변수를 사용하지 않고 Bool을 반환하는 실제 클로저를 작성하면 작동하지 않습니다. …
148 closures  swift 

7
Swift에서 클로저를 변수로 저장
Objective-C에서 블록의 입력 및 출력을 정의하고 메소드에 전달 된 블록 중 하나를 저장 한 다음 나중에 해당 블록을 사용할 수 있습니다. // in .h typedef void (^APLCalibrationProgressHandler)(float percentComplete); typedef void (^APLCalibrationCompletionHandler)(NSInteger measuredPower, NSError *error); // in .m @property (strong) APLCalibrationProgressHandler progressHandler; @property (strong) APLCalibrationCompletionHandler completionHandler; - (id)initWithRegion:(CLBeaconRegion *)region completionHandler:(APLCalibrationCompletionHandler)handler { …

2
비 이스케이프 매개 변수를 닫으면 이스케이프 될 수 있습니다.
프로토콜이 있습니다. enum DataFetchResult { case success(data: Data) case failure } protocol DataServiceType { func fetchData(location: String, completion: (DataFetchResult) -> (Void)) func cachedData(location: String) -> Data? } 예제 구현으로 : /// An implementation of DataServiceType protocol returning predefined results using arbitrary queue for asynchronyous mechanisms. /// Dedicated to be used …

2
이 개체 수명 연장 폐쇄는 C # 컴파일러 버그입니까?
C # 컴파일러 (매우 중요한 경우 4.0)에서 매우 호기심 많은 코드 생성기 가 발생했을 때 객체 수명을 연장시키는 가능성에 대한 질문 에 대답하고있었습니다 (4.0). 내가 찾을 수있는 가장 짧은 재현은 다음과 같습니다. 포함 유형 의 정적 메소드 를 호출하는 동안 로컬을 캡처하는 람다를 작성하십시오 . 생성 된 델리게이트 참조를 포함 …

8
Playground에서 비동기 콜백을 실행하는 방법
많은 Cocoa 및 CocoaTouch 메서드에는 Objective-C의 블록 및 Swift의 Closures로 구현 된 완료 콜백이 있습니다. 그러나 Playground에서 시도 할 때 완료가 호출되지 않습니다. 예를 들면 : // Playground - noun: a place where people can play import Cocoa import XCPlayground let url = NSURL(string: "http://stackoverflow.com") let request = NSURLRequest(URL: url) …

10
Python 2.x의 nonlocal 키워드
Python 2.6에서 클로저를 구현하려고하는데 비 지역 변수에 액세스해야하지만이 키워드는 Python 2.x에서 사용할 수없는 것 같습니다. 이 파이썬 버전에서 클로저의 비 지역 변수에 어떻게 액세스해야합니까?

1
클로저는 언제 Fn, FnMut 및 FnOnce를 구현합니까?
, 및 특성 을 구현하기위한 클로저 의 특정 조건 은 무엇입니까 ?FnFnMutFnOnce 그건: 때 폐쇄 않습니다 하지 구현 FnOnce특성을? 때 폐쇄 않습니다 하지 구현 FnMut특성을? 때 폐쇄 않습니다 하지 구현 Fn특성을? 예를 들어, 몸체에서 클로저 상태를 변경하면 컴파일러가 구현되지 않습니다 Fn.
114 rust  closures 

12
객체 속성에 직접 할당 된 클로저 호출
클로저를 변수에 다시 할당 한 다음 호출하지 않고 객체의 속성에 직접 할당 한 클로저를 호출 할 수 있기를 원합니다. 이게 가능해? 아래 코드는 작동하지 않으며 Fatal error: Call to undefined method stdClass::callback(). $obj = new stdClass(); $obj->callback = function() { print "HelloWorld!"; }; $obj->callback();

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.