Preguntas etiquetadas con closures

Un cierre es una función de primera clase que se refiere a (cierra) variables del ámbito en el que se definió. Si el cierre aún existe después de que finaliza su alcance de definición, las variables sobre las que se cierra continuarán existiendo también.

9
Variable capturada en un bucle en C #
Encontré un problema interesante sobre C #. Tengo un código como el de abajo. 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()); } Espero que produzca 0, 2, 4, …



8
var self = esto?
El uso de métodos de instancia como devoluciones de llamada para los controladores de eventos cambia el alcance de thisde "Mi ejemplo" a "Lo que acaba de llamar la devolución de llamada" . Entonces mi código se ve así function MyObject() { this.doSomething = function() { ... } var self …

5
Parámetro de cierre de escape opcional rápido
Dado: 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() ¿Hay alguna forma de hacer el completionparámetro (y action) de …

11
¿Cómo debo llamar a 3 funciones para ejecutarlas una tras otra?
Si necesito llamar a estas funciones una tras otra, $('#art1').animate({'width':'1000px'},1000); $('#art2').animate({'width':'1000px'},1000); $('#art3').animate({'width':'1000px'},1000); Sé que en jQuery podría hacer algo como: $('#art1').animate({'width':'1000px'},1000,'linear',function(){ $('#art2').animate({'width':'1000px'},1000,'linear',function(){ $('#art3').animate({'width':'1000px'},1000); }); }); Pero, supongamos que no estoy usando jQuery y quiero llamar: some_3secs_function(some_value); some_5secs_function(some_value); some_8secs_function(some_value); ¿Cómo debo llamar a estas funciones para ejecutar some_3secs_function, y DESPUÉS de …

9
¿Cómo funcionan los cierres léxicos?
Mientras investigaba un problema que tenía con los cierres léxicos en el código Javascript, encontré este problema en Python: flist = [] for i in xrange(3): def func(x): return x * i flist.append(func) for f in flist: print f(2) Tenga en cuenta que este ejemplo evita cuidadosamente lambda. Imprime "4 …

6
Cómo usar Swift @autoclosure
Al escribir un assertmensaje en Swift, noté que el primer valor se escribe como @autoclosure() -> Bool con un método sobrecargado para devolver un Tvalor genérico , para probar la existencia a través de LogicValue protocol. Sin embargo, apegarse estrictamente a la pregunta en cuestión. Parece querer un @autoclosureque devuelve …
148 closures  swift 

7
Almacene un cierre como variable en Swift
En Objective-C, puede definir la entrada y salida de un bloque, almacenar uno de esos bloques que se pasa a un método, luego usar ese bloque más tarde: // in .h typedef void (^APLCalibrationProgressHandler)(float percentComplete); typedef void (^APLCalibrationCompletionHandler)(NSInteger measuredPower, NSError *error); // in .m @property (strong) APLCalibrationProgressHandler progressHandler; @property (strong) …

2
El uso cerrado del parámetro de no escape puede permitirle escapar
Tengo un protocolo: enum DataFetchResult { case success(data: Data) case failure } protocol DataServiceType { func fetchData(location: String, completion: (DataFetchResult) -> (Void)) func cachedData(location: String) -> Data? } Con un ejemplo de implementación: /// An implementation of DataServiceType protocol returning predefined results using arbitrary queue for asynchronyous mechanisms. /// Dedicated …




1
¿Cuándo implementa un cierre Fn, FnMut y FnOnce?
¿Cuáles son las condiciones específicas para un cierre que ejecute el Fn, FnMuty FnOncerasgos? Es decir: ¿Cuándo un cierre no implementa el FnOncerasgo? ¿Cuándo un cierre no implementa el FnMutrasgo? ¿Cuándo un cierre no implementa el Fnrasgo? Por ejemplo, mutar el estado del cierre en su cuerpo hace que el …
114 rust  closures 


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.