Вопросы с тегом 'closures'

Закрытие - это первоклассная функция, которая ссылается на (закрывает) переменные из области, в которой она была определена. Если закрытие все еще существует после того, как его определяющая область действия заканчивается, переменные, которые она закрывает, будут продолжать существовать.
6

Что делает захват функции лямбда-функции?

Недавно я начал играть с Python, и я столкнулся с чем-то особенным в работе закрытия. Рассмотрим следующий код: adders=[0,1,2,3] for i in [0,1,2,3]: adders[i]=lambda a: i+a print adders[1](3) Он создает простой массив функций, которые принима...
19 февр. '10 в 9:46
5

Анонимные рекурсивные функции PHP

Возможно ли иметь функцию PHP, которая является как рекурсивной, так и анонимной? Это моя попытка заставить его работать, но он не передается в имени функции. $factorial = function( $n ) use ( $factorial ) { if( $n <= 1 ) return 1; return...
19 мар. '10 в 19:51
8

Захваченная переменная в цикле в С#

У меня возник интересный вопрос о С#. У меня есть код, как показано ниже. List<Func<int>> actions = new List<Func<int>>(); int variable = 0; while (variable < 5) { actions.Add(() => variable * 2); ++ variable; ...
07 нояб. '08 в 7:26
9

var self = this?

Использование методов экземпляра в качестве обратных вызовов для обработчиков событий изменяет область this от "Мой экземпляр" до "Независимо от того, что только что называется обратным вызовом". Таким образом, мой код выглядит следующим образом fu...
03 дек. '08 в 16:55
12

Что такое "закрытие" в .NET?

Что такое закрытие? У нас есть они в .NET? Если они существуют в .NET, можете ли вы предоставить фрагмент кода (желательно на С#), объяснив его? EDIT: я просмотрел статью Джона Скита, чтобы понять, что такое закрытие и как использовать их в .N...
09 янв. '09 в 16:01
5

Опциональный параметр закрытия с быстрой скоростью 3

Дано: typealias Action = () -> () var action: Action = { } func doStuff(stuff: String, completion: @escaping Action) { print(stuff) action = completion completion() } func doStuffAgain() { print("again") action() } doStuff...
21 сент. '16 в 14:01
2

Является ли это объектно-пожизненное продление-закрытие ошибки компилятора С#?

Я отвечал на question о возможности закрытия (законно) продления срока жизни объекта, когда я столкнулся с каким-то чрезвычайно любопытным кодом-gen со стороны компилятор С# (если это имеет значение). Самый короткий реестр, который я могу найти, сле...
07 дек. '11 в 16:45
11

Как я могу вызвать 3 функции для их выполнения один за другим?

Если мне нужно вызывать эти функции одну за другой, $('#art1').animate({'width':'1000px'},1000); $('#art2').animate({'width':'1000px'},1000); $('#art3').animate({'width':'1000px'},1000); Я знаю, в jQuery я мог бы сделать чт...
03 мар. '11 в 23:32
7

Храните закрытие в виде переменной в Swift

В Objective-C вы можете определить вход и выход блока, сохранить один из тех блоков, которые были переданы методу, а затем использовать этот блок позже: // in .h typedef void (^APLCalibrationProgressHandler)(float percentComplete); typedef ...
07 июл. '14 в 5:28
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) Обратите в...
24 окт. '08 в 14:08
5

Как использовать Swift @autoclosure

Я заметил, что при записи assert в Swift первое значение вводится как @autoclosure() -> Bool с перегруженным методом для возврата общего значения T, чтобы проверить существование через LogicValue protocol. Однако строго придерживаясь вопроса...
08 июн. '14 в 3:05
6

Как передать значение (а не ссылку) переменной JS в функцию?

Вот упрощенная версия того, что я пытаюсь запустить: for (var i = 0; i < results.length; i++) { marker = results[i]; google.maps.event.addListener(marker, 'click', function() { change_selection(i); }); } но я обнаружил, ч...
02 апр. '10 в 20:20
10

ключевое слово nonlocal в Python 2.x

Я пытаюсь реализовать закрытие в Python 2.6, и мне нужно получить доступ к нелокальной переменной, но похоже, что это ключевое слово недоступно в python 2.x. Как получить доступ к нелокальным переменным в замыканиях в этих версиях python?
06 июл. '10 в 22:31
8

Как запустить асинхронные обратные вызовы на игровой площадке

Многие методы Cocoa и CocoaTouch имеют завершающие обратные вызовы, реализованные как блоки в Objective-C и Closures in Swift. Однако, когда вы пытаетесь выполнить это на Playground, завершение никогда не вызывается. Например: // Playground - noun:...
05 июн. '14 в 10:55
2

Закрытие использования параметра, не поддерживающего экранирование, может позволить ему избежать

У меня есть протокол: enum DataFetchResult { case success(data: Data) case failure } protocol DataServiceType { func fetchData(location: String, completion: (DataFetchResult) -> (Void)) func cachedData(location: String) -> Dat...
17 авг. '16 в 7:46