Articles of fechamentos de

Acesso ao fechamento modificado (2)

Esta é uma extensão da questão do Access to Modified Closure . Eu só quero verificar se o seguinte é realmente seguro o suficiente para uso em produção. List lists = new List(); //Code to retrieve lists from DB foreach (string list in lists) { Button btn = new Button(); btn.Click += new EventHandler(delegate { […]

Javascript Closures e ‘this’

Eu tenho um problema com um object que criei que é algo como isto: var myObject = { AddChildRowEvents: function(row, p2) { if(document.attachEvent) { row.attachEvent(‘onclick’, function(){this.DoSomething();}); } else { row.addEventListener(‘click’, function(){this.DoSomething();}, false); } }, DoSomething: function() { this.SomethingElse(); //<– Error here, object 'this' does not support this method. } } O problema é que quando […]

Como você testa funções e fechamentos para igualdade?

O livro diz que “funções e fechamentos são tipos de referência”. Então, como você descobre se as referências são iguais? == e === não funcionam. func a() { } let å = a let b = å === å // Could not find an overload for === that accepts the supplied arguments Aqui está como […]

Qual é a diferença entre um ‘encerramento’ e um ‘lambda’?

Alguém poderia explicar? Eu entendo os conceitos básicos por trás deles, mas muitas vezes os vejo usados ​​de forma intercambiável e fico confuso. E agora que estamos aqui, como eles diferem de uma function normal?

Como executo retornos de chamada asynchronouss no Playground?

Muitos methods Cocoa e CocoaTouch têm callbacks de completação implementados como blocos em Objective-C e Closures em Swift. No entanto, ao experimentá-los no Playground, a conclusão nunca é chamada. Por exemplo: // Playground – noun: a place where people can play import Cocoa import XCPlayground let url = NSURL(string: “http://stackoverflow.com”) let request = NSURLRequest(URL: url) […]

Por favor, explique o uso de fechamentos de JavaScript em loops

Eu li uma série de explicações sobre fechamentos e fechamentos dentro de loops. Eu tenho dificuldade em entender o conceito. Eu tenho este código: Existe uma maneira de reduzir o código tanto quanto possível para que o conceito de fechamento possa ser esclarecido. Estou tendo dificuldade em entender a parte em que o i está […]

var self = isso?

Usando methods de instância como retornos de chamada para manipuladores de events, o escopo é alterado de “Minha instância” para “Tudo o que é chamado de retorno de chamada” . Então meu código se parece com isso function MyObject() { this.doSomething = function() { … } var self = this $(‘#foobar’).bind(‘click’, function(){ self.doSomethng() // this.doSomething() […]

Acesso ao fechamento modificado

string [] files = new string[2]; files[0] = “ThinkFarAhead.Example.Settings.Configuration_Local.xml”; files[1] = “ThinkFarAhead.Example.Settings.Configuration_Global.xml”; //Resharper complains this is an “access to modified closure” for (int i = 0; i < files.Length; i++ ) { // Resharper disable AccessToModifiedClosure if(Array.Exists(Assembly.GetExecutingAssembly().GetManifestResourceNames(), delegate(string name) { return name.Equals(files[i]); })) return Assembly.GetExecutingAssembly().GetManifestResourceStream(files[i]); // ReSharper restore AccessToModifiedClosure } O acima parece funcionar bem […]

O identificador foreach e os encerramentos

Nos dois trechos seguintes, o primeiro é seguro ou você deve fazer o segundo? Por segurança, quero dizer, cada thread é garantida para chamar o método no Foo da mesma iteração de loop na qual o thread foi criado? Ou você deve copiar a referência para uma nova variável “local” para cada iteração do loop? […]

Atribuir manipuladores de cliques em loop

Eu tenho vários #mydiv1 , #mydiv2 , #mydiv3 , e quero atribuir manipuladores de cliques para eles: $(document).ready(function(){ for(var i = 0; i < 20; i++) { $('#question' + i).click( function(){ alert('you clicked ' + i); }); } }); Mas ao invés de mostrar ‘you clicked 3’ quando ‘you clicked 3’ em #mydiv3 (como para […]