Вопросы с тегом «closures»

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

7
Закрытие в Java 7 [закрыто]
Закрыто. Этот вопрос не соответствует рекомендациям по переполнению стека . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме Stack Overflow. Закрыт 2 года назад . Уточните этот вопрос Что такое закрытие? Предполагается, что он будет включен в Java 7. (Замыкания обсуждались …
105 java  closures 

4
Локальные переменные во вложенных функциях
Хорошо, потерпите меня, я знаю, что это будет выглядеть ужасно запутанным, но, пожалуйста, помогите мне понять, что происходит. from functools import partial class Cage(object): def __init__(self, animal): self.animal = animal def gotimes(do_the_petting): do_the_petting() def get_petters(): for animal in ['cow', 'dog', 'cat']: cage = Cage(animal) def pet_function(): print "Mary pets the …

7
Блоки на Swift (animateWithDuration: анимация: завершение :)
Мне не удается заставить блоки работать на Swift. Вот пример, который работал (без блока завершения): UIView.animateWithDuration(0.07) { self.someButton.alpha = 1 } или, как вариант, без замыкающего закрытия: UIView.animateWithDuration(0.2, animations: { self.someButton.alpha = 1 }) но как только я пытаюсь добавить блок завершения, он просто не работает: UIView.animateWithDuration(0.2, animations: { self.blurBg.alpha …
102 ios  swift  closures 

1
Доступ к модифицированному закрытию (2)
Это расширение вопроса от доступа к модифицированному закрытию . Я просто хочу проверить, действительно ли следующее достаточно безопасно для производственного использования. List<string> lists = new List<string>(); //Code to retrieve lists from DB foreach (string list in lists) { Button btn = new Button(); btn.Click += new EventHandler(delegate { MessageBox.Show(list); }); …
101 c#  .net  resharper  closures 

2
Зачем нужны волокна
Для волокон у нас есть классический пример: генерация чисел Фибоначчи. fib = Fiber.new do x, y = 0, 1 loop do Fiber.yield y x,y = y,x+y end end Зачем нам нужны волокна? Я могу переписать это с помощью того же Proc (фактически, закрытие) def clsr x, y = 0, 1 …
101 ruby  lambda  closures  fibers  proc 

6
Как называется этот шаблон JavaScript и почему он используется?
Я изучаю THREE.js и заметил шаблон, в котором функции определены так: var foo = ( function () { var bar = new Bar(); return function ( ) { //actual logic using bar from above. //return result; }; }()); (Пример смотрите здесь метод raycast ). Нормальное изменение такого метода будет выглядеть …

2
Swift @escaping и обработчик завершения
Я пытаюсь более точно понять «Закрытие» Swift. Но @escaping и Completion Handlerих слишком сложно понять Я просмотрел множество сообщений Swift и официальных документов, но чувствовал, что этого все еще недостаточно. Это пример кода официальных документов var completionHandlers: [()->Void] = [] func someFunctionWithEscapingClosure(completionHandler: @escaping ()->Void){ completionHandlers.append(completionHandler) } func someFunctionWithNoneescapingClosure(closure: ()->Void){ closure() …
100 swift  escaping  closures 

2
Доступ к внешней переменной с использованием анонимной функции в качестве параметров
В основном я использую эту удобную функцию для обработки строк db (закройте глаза на PDO и / или другие вещи) function fetch($query,$func) { $query = mysql_query($query); while($r = mysql_fetch_assoc($query)) { $func($r); } } С помощью этой функции я могу просто: fetch("SELECT title FROM tbl", function($r){ //> $r['title'] contains the title …
94 php  closures  scope 


12
Указатели на функции, замыкания и лямбда
Я только сейчас изучаю указатели на функции, и когда я читал главу K&R по этому вопросу, первое, что меня поразило, было: «Эй, это вроде как закрытие». Я знал, что это предположение в корне неверно, и после поиска в Интернете я не нашел никакого анализа этого сравнения. Так почему же указатели …

6
Псевдонимы функций JavaScript не работают
Я как раз читал этот вопрос и хотел попробовать метод псевдонима, а не метод-оболочку функции, но я не мог заставить его работать ни в Firefox 3, ни в 3.5beta4, ни в Google Chrome, как в окнах отладки, так и в на тестовой веб-странице. Firebug: >>> window.myAlias = document.getElementById function() >>> …

13
Можете ли вы объяснить замыкания (поскольку они относятся к Python)?
Я много читал о замыканиях и думаю, что понимаю их, но, не омрачая картины для себя и других, я надеюсь, что кто-нибудь сможет объяснить замыкания настолько кратко и ясно, насколько это возможно. Я ищу простое объяснение, которое могло бы помочь мне понять, где и почему я хотел бы их использовать.

8
Являются ли значения по умолчанию в JDK 8 формой множественного наследования в Java?
Новая функция, входящая в JDK 8, позволяет добавлять к существующему интерфейсу, сохраняя двоичную совместимость. Синтаксис похож на public interface SomeInterface() { void existingInterface(); void newInterface() default SomeClass.defaultImplementation; } Таким образом, для всех существующих реализаций, SomeInterfaceкогда они обновляются до этой новой версии, они не все внезапно обнаруживают ошибки компиляции newInterface(). Что …

7
Идентификатор foreach и замыкания
В двух следующих отрывках, является ли первый безопасным или вы должны сделать второй? Под безопасностью я имею в виду, гарантированно ли каждый поток вызывает метод в Foo из той же итерации цикла, в которой был создан поток? Или вы должны копировать ссылку на новую переменную «local» на каждой итерации цикла? …

3
Значения лямбда-замыкания могут быть переданы как ссылочные параметры rvalue.
Я обнаружил, что lvalueлямбда-замыкания всегда можно передать в качестве rvalueпараметров функции. Смотрите следующую простую демонстрацию. #include <iostream> #include <functional> using namespace std; void foo(std::function<void()>&& t) { } int main() { // Case 1: passing a `lvalue` closure auto fn1 = []{}; foo(fn1); // works // Case 2: passing a `lvalue` …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.