Описание тега closures

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

Выполнение закрытия на Twig

Я пытаюсь выполнить замыкание, которое находится внутри массива по шаблону Twig. Ниже вы можете найти упрощенный фрагмент, который я пробую: //Symfony controller ... $funcs = array( "conditional" => function($obj){ return $obj->getFoo() === $o…
22 янв '16 в 10:49
2 ответа

Тип параметра `T` может не жить достаточно долго

Я пытаюсь написать небольшую программу на Rust, но не могу заставить ее работать. Я воспроизвел ошибку в меньшем сценарии: fn main() { let name = String::from("World"); let test = simple(name); println!("Hello {}!", test()) } fn simple<T>(a: T…
19 апр '18 в 10:33
4 ответа

Javascript Closures и область видимости переменной, когда заканчивается вызов функции

Я прочитал эту прекрасную статью: как работают JavaScript-замыкания? Но у меня все еще есть вопросы... Теги Stackru определяют "Замыкания" как "Замыкание - это функция первого класса, которая ссылается на (закрывает) переменные из области, в которой…
19 фев '16 в 15:10
7 ответов

Как использовать функцию setInterval внутри цикла for

Я пытаюсь запустить несколько таймеров, учитывая переменный список элементов. Код выглядит примерно так: var list = Array(...); for(var x in list){ setInterval(function(){ list[x] += 10; console.log(x + "=>" + list[x] + "\n"); }, 5 * 1000); } Про…
13 окт '11 в 03:19
4 ответа

В чем разница между монадой и замыканием?

Я немного запутался, читая определение между ними. Могут ли они на самом деле пересекаться с точки зрения определения? или я полностью потерялся? Благодарю.
26 апр '09 в 11:57
1 ответ

Замыкания в Groovy - реализация на эквивалентном Java

У меня есть следующий Groovy скрипт: def n = ["1","2","3"] println n.collect { v -> v.toInteger()*2 } И я хотел бы перевести его в эквивалентный Java-код (абстрагируясь от значения "собирать" - не имеет значения, что он делает сейчас). Я написал …
10 фев '14 в 17:24
1 ответ

build.gradle как применить замыкание из другого файла

У меня есть закрытие определено в другом файле build.gradle, который называется other.gradle. Вот содержимое: Closure callback = { productFlavors { ... devel { ... } prod { ... } } } Теперь в моем файле build.gradle я хочу назвать это замыкание след…
20 июл '15 в 22:01
1 ответ

Об этом и себе в javascript

Я знаю магию "Я". Но посмотрите на этот фрагмент из nodejs(не полный). Socket.prototype.connect = function(options, cb) { ...... var self = this; var pipe = !!options.path; if (this.destroyed || !this._handle) { this._handle = pipe ? createPipe() : …
18 апр '13 в 05:16
1 ответ

Как создать общее закрытие завершения?

У меня есть следующий протокол: protocol RESTAPIprotocol { associatedtype T: Object, Decodable } extension RESTAPIprotocol { func getList(sinceSyncToken: String = "", pageLimit: Int = 100, progress: Moya.ProgressBlock? = nil, completion:@escaping (_…
23 сен '18 в 22:06
3 ответа

Вернуться идентификатор кнопки при нажатии - JavaScript

Я делаю программу, которая должна сделать столбец кнопок при загрузке. После этого по нажатию должен появиться новый столбец кнопок и отобразиться идентификатор кнопки, по которой вы нажали. Он отлично работает, когда предполагается создать новый ст…
27 июл '16 в 12:31
1 ответ

Groovy замыкание - что происходит в этом коде?

Как начинающий разработчик Groovy, я пытаюсь понять следующие строки кода Groovy, который я унаследовал: maxCount = skillsDist.findAll {it.mValue.value >= 0 }.max { it.mValue.value }.mValue.value minCount = skillsDist.findAll { it.mValue.value &g…
22 май '12 в 16:50
1 ответ

Javascript - сохранение переменной в области видимости после объявления функции

У меня есть некоторый код JavaScript, который берет функцию и вызывает ее снова: var obj = { // returns the function with prevent default prepended. run: function(functor, context){ return function(e){ e.preventDefault(); context.call(functor, e); }…
01 июл '14 в 17:00
1 ответ

Случай переключения в закрытой форме не соответствует должным образом

Я пытаюсь сделать случай переключения, основанный на частичных строках, используя сопоставление с образцом Groovy. У меня уже есть эта работа - String s = "abc"; switch(s){ case { it =~ /b/ } : //this works break; ..... } Но когда я пытаюсь абстраги…
11 фев '15 в 16:50
1 ответ

Task.Factory.StartNew() в методе данных - передать эту базу данных?

Я пытаюсь превратить вызов хранимой процедуры в методе данных в асинхронный вызов. Это оригинальный метод: public void InsertFoo(Foo foo) { this.Database.SomeStoredProcedure(foo); } Моя первая попытка была такая: public void InsertFoo(Foo foo) { Tas…
11 июл '12 в 21:25
2 ответа

Границы признаков замыкания в переменных типа по сравнению с границами признаков замыкания в аргументах функций высшего порядка

Почему эти 2 работы: fn apply_once1<F: FnOnce(T1) -> T2, T1, T2> (f: F, x: T1) -> T2 { f(x) } fn apply_once2<F, T1, T2> (f: F, x: T1) -> T2 where F: FnOnce(T1) -> T2 { f(x) } Но этот не компилируется: fn apply_once3<T1, T2…
30 мар '16 в 06:09
2 ответа

Возврат значения из блока завершения / закрытия, используемого в методе источника данных

У меня есть пользовательское представление, которое будет отображаться в представлении коллекции. Представление будет добавлено в виде стека, встроенного в контроллер представления. Метод источника данных предоставляется для предоставления объекта п…
26 окт '18 в 18:21
3 ответа

Как называется эта функция javascript и какой шаблон она использует?

Я наткнулся на эту функцию типа в примере кода, и она выглядит широко используемой. Но я не могу понять, как это назвать, или на самом деле, какую модель он представляет. l = function (a1){ someVar = { someFn: function(a2){ console.log(a1); console.…
09 июн '13 в 04:38
3 ответа

Javascript Закрытие. Лексический против контекста функции.

У меня вопрос, почему следующий код печатает 1 вместо 500; Когда вызывается обратный вызов, и он не находит переменную count, он сначала смотрел на контекст func1? function func1(cb){ let count = 500 cb() } let count = 1 function func2() { console.l…
13 авг '18 в 19:07
2 ответа

Swift EXC_BAD_ACCESS при использовании массивов в замыкании

Рассмотрим следующий игрушечный пример кода Swift: protocol Testable{} class MyObj : Testable{} class Test { var arr:[Testable] = [] var didRun:Bool = false func run() -> [Testable]{ if(didRun){ println("arr has \(arr.count) elements") for e in a…
31 июл '14 в 22:22
6 ответов

Как избежать доступа к изменяемой переменной при закрытии

У меня есть такой код: for(var id=0; id < message.receiver.length; id++){ var tmp_id = id; zlib.gzip(JSON.stringify(message.json), function(err, buffer){ ... pushStatusPool[message.receiver[tmp_id]] = null; // fix memory leak delete pushStatusPoo…
11 дек '12 в 04:06