Запитання з тегом «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, …


12
Що таке "закриття" в .NET?
Що таке закриття ? Чи є вони у них .NET? Якщо вони існують у .NET, ви можете надати фрагмент коду (бажано в C #), пояснивши його?
195 .net  closures 

8
var self = це?
Використання методів екземплярів як зворотних викликів для обробників подій змінює область дії thisз "Мій екземпляр" на "Що б тільки не викликали зворотний виклик" . Тож мій код виглядає приблизно так function MyObject() { this.doSomething = function() { ... } var self = this $('#foobar').bind('click', function(){ self.doSomethng() // this.doSomething() would not …

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та …

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", …

6
Як користуватися Swift @autoclosure
Я помітив, коли писав assertу Swift, що перше значення вводиться як @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 …

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 …

2
Це помилка компілятора C #, що розширюється протягом життя, об'єкта?
Я відповідав на питання про можливість закриття (законно) продовження життя об'єкта, коли я зіткнувся з деяким надзвичайно цікавим кодовим кодом з боку компілятора C # (якщо це має значення 4,0). Найкоротший докір, який я можу знайти, є наступним: Створіть лямбда, яка захоплює локальний під час виклику статичного методу, що містить …

8
Як запустити асинхронні зворотні дзвінки на дитячому майданчику
Багато методів Cocoa та CocoaTouch мають зворотні виклики завершення, реалізовані як блоки в Objective-C та Closures in Swift. Однак, випробувавши їх на Playground, завершення ніколи не називається. Наприклад: // Playground - noun: a place where people can play import Cocoa import XCPlayground let url = NSURL(string: "http://stackoverflow.com") let request = …

10
нелокальне ключове слово в Python 2.x
Я намагаюся реалізувати закриття в Python 2.6, і мені потрібно отримати доступ до нелокальної змінної, але здається, що це ключове слово недоступне в python 2.x. Як слід отримувати доступ до нелокальних змінних у закриттях у цих версіях python?

1
Коли закриття реалізує Fn, FnMut і FnOnce?
Які специфічні умови для закриття в цілях здійснення Fn, FnMutі FnOnceриси? Це є: Коли закриття не реалізує 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();

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.