Pertanyaan yang diberi tag «closures»

Penutupan adalah fungsi kelas satu yang merujuk ke (menutup) variabel dari ruang lingkup di mana ia didefinisikan. Jika penutupan masih ada setelah lingkup pendefinisiannya berakhir, variabel yang ditutup akan terus ada juga.

9
Variabel yang diambil dalam satu lingkaran dalam C #
Saya bertemu masalah menarik tentang C #. Saya punya kode seperti di bawah ini. 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()); } Saya berharap untuk menampilkan 0, 2, …

6
Fungsi PHP rekursif anonim
Apakah mungkin untuk memiliki fungsi PHP yang bersifat rekursif dan anonim? Ini adalah upaya saya untuk membuatnya berfungsi, tetapi tidak lulus dalam nama fungsi. $factorial = function( $n ) use ( $factorial ) { if( $n <= 1 ) return 1; return $factorial( $n - 1 ) * $n; }; …

12
Apa itu 'penutupan' di .NET?
Apa itu penutupan ? Apakah kita memilikinya di .NET? Jika ada di .NET, bisakah Anda memberikan cuplikan kode (lebih disukai dalam C #) yang menjelaskannya?
195 .net  closures 

8
var diri = ini?
Menggunakan metode instan sebagai panggilan balik untuk penangan acara mengubah ruang lingkup thisdari "Contoh saya" menjadi "Apa pun yang disebut dengan panggilan balik" . Jadi kode saya terlihat seperti ini function MyObject() { this.doSomething = function() { ... } var self = this $('#foobar').bind('click', function(){ self.doSomethng() // this.doSomething() would not …

5
Parameter penutupan lolos opsional Swift
Diberikan: 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() Apakah ada cara untuk membuat completionparameter (dan action) bertipe Action?dan …

11
Bagaimana saya harus memanggil 3 fungsi untuk menjalankannya satu demi satu?
Jika saya perlu memanggil fungsi ini satu demi satu, $('#art1').animate({'width':'1000px'},1000); $('#art2').animate({'width':'1000px'},1000); $('#art3').animate({'width':'1000px'},1000); Saya tahu di jQuery saya bisa melakukan sesuatu seperti: $('#art1').animate({'width':'1000px'},1000,'linear',function(){ $('#art2').animate({'width':'1000px'},1000,'linear',function(){ $('#art3').animate({'width':'1000px'},1000); }); }); Tapi, mari kita asumsikan bahwa saya tidak menggunakan jQuery dan saya ingin menelepon: some_3secs_function(some_value); some_5secs_function(some_value); some_8secs_function(some_value); Bagaimana saya harus memanggil fungsi ini untuk mengeksekusi …

2
Penggunaan penutupan dari parameter non-escaping memungkinkannya untuk melarikan diri
Saya memiliki protokol: enum DataFetchResult { case success(data: Data) case failure } protocol DataServiceType { func fetchData(location: String, completion: (DataFetchResult) -> (Void)) func cachedData(location: String) -> Data? } Dengan contoh implementasi: /// An implementation of DataServiceType protocol returning predefined results using arbitrary queue for asynchronyous mechanisms. /// Dedicated to be …

9
Bagaimana cara kerja penutupan leksikal?
Sementara saya sedang menyelidiki masalah yang saya miliki dengan penutupan leksikal dalam kode Javascript, saya menemukan masalah ini dengan Python: flist = [] for i in xrange(3): def func(x): return x * i flist.append(func) for f in flist: print f(2) Perhatikan bahwa contoh ini dengan sadar menghindari lambda. Mencetak "4 …

6
Cara menggunakan Swift @autoclosure
Saya perhatikan ketika menulis assertdi Swift bahwa nilai pertama diketikkan sebagai @autoclosure() -> Bool dengan metode kelebihan beban untuk mengembalikan Tnilai generik , untuk menguji keberadaan melalui LogicValue protocol. Namun berpegang erat pada pertanyaan yang ada. Tampaknya ingin @autoclosureyang mengembalikan a Bool. Menulis penutupan yang sebenarnya tanpa parameter dan mengembalikan …
148 closures  swift 

7
Menyimpan penutupan sebagai variabel dalam Swift
Di Objective-C, Anda bisa menentukan input dan output blok, simpan salah satu blok yang diteruskan ke metode, lalu gunakan blok itu nanti: // 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 completionHandler:(APLCalibrationCompletionHandler)handler …


8
Bagaimana cara menjalankan panggilan balik Asynchronous di Playground
Banyak metode Cocoa dan CocoaTouch memiliki callback penyelesaian yang diimplementasikan sebagai blok di Objective-C dan Closures di Swift. Namun, saat mencobanya di Playground, penyelesaiannya tidak pernah dibatalkan. Sebagai contoh: // Playground - noun: a place where people can play import Cocoa import XCPlayground let url = NSURL(string: "http://stackoverflow.com") let request …


1
Kapan closure mengimplementasikan Fn, FnMut dan FnOnce?
Apa kondisi spesifik untuk penutupan untuk mengimplementasikan sifat Fn, FnMutdan FnOnce? Itu adalah: Kapan closure tidak mengimplementasikan FnOncesifat tersebut? Kapan closure tidak mengimplementasikan FnMutsifat tersebut? Kapan closure tidak mengimplementasikan Fnsifat tersebut? Misalnya, mutasi status closure pada tubuhnya membuat compiler tidak mengimplementasikannya Fn.
114 rust  closures 

12
Memanggil closure yang ditugaskan ke properti objek secara langsung
Saya ingin dapat memanggil closure yang saya tetapkan ke properti objek secara langsung tanpa menetapkan ulang closure ke variabel dan kemudian memanggilnya. Apakah ini mungkin? Kode di bawah ini tidak berfungsi dan menyebabkan Fatal error: Call to undefined method stdClass::callback(). $obj = new stdClass(); $obj->callback = function() { print "HelloWorld!"; …

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.