Запитання з тегом «closures»

Закриття - це функція першого класу, яка посилається на (перекриває) змінні з тієї області, в якій вона була визначена. Якщо закриття все-таки існує після закінчення його визначення області, змінні, які він закриває, будуть також існувати.

7
Ідентифікатор foreach та закриття
У двох наступних фрагментах, чи безпечний перший, чи потрібно зробити другий? Під безпекою я маю на увазі, чи кожен потік гарантовано викликає метод на Foo з тієї самої ітерації циклу, в якій був створений потік? Або ви повинні скопіювати посилання на нову змінну "local" на кожну ітерацію циклу? var threads …

2
Як назвати закриття, яке є змінною класу?
class MyClass { var $lambda; function __construct() { $this->lambda = function() {echo 'hello world';}; // no errors here, so I assume that this is legal } } $myInstance = new MyClass(); $myInstance->lambda(); //Fatal error: Call to undefined method MyClass::lambda() Отже, який правильний синтаксис для досягнення змінних класу?

6
У Python 2, як мені записати змінну в батьківській області?
У мене є такий код всередині функції: stored_blocks = {} def replace_blocks(m): block = m.group(0) block_hash = sha1(block) stored_blocks[block_hash] = block return '{{{%s}}}' % block_hash num_converted = 0 def convert_variables(m): name = m.group(1) num_converted += 1 return '<%%= %s %%>' % name fixed = MATCH_DECLARE_NEW.sub('', template) fixed = MATCH_PYTHON_BLOCK.sub(replace_blocks, fixed) …


3
Атрибут @noescape у Swift 1.2
У Swift 1.2 є новий атрибут з параметрами закриття у функціях, і як сказано в документації: Це вказує на те, що параметр викликається лише коли-небудь (або передається як параметр @ noescape у виклику), що означає, що він не може пережити термін дії виклику. У моєму розумінні, до цього ми могли …

2
Оновлення закриття до Swift 3 - @escaping
Я оновив свій код до Xcode 8.0 beta 6, але я застряг у тому, що, здається, стосується нового типового закриття, що не виходить. У наведеному нижче коді Xcode пропонує додати @escapingйого completion:в перший рядок коду нижче, але це все одно не компілюється і йде по колу. * ( EDIT : …

5
Змінна змінна доступна із закриття. Як я можу це виправити?
Я використовую Typeahead за допомогою Twitter. Я стикаюся з цим попередженням від Intellij. Це призводить до того, що "window.location.href" для кожного посилання є останнім елементом у моєму списку елементів. Як я можу виправити свій код? Нижче мій код: AutoSuggest.prototype.config = function () { var me = this; var comp, options; …

6
Призначте обробники кліків у циклі for
У мене кілька ДІВ - х #mydiv1, #mydiv2, #mydiv3... і хоче призначати обробник клацання до них: $(document).ready(function(){ for(var i = 0; i < 20; i++) { $('#question' + i).click( function(){ alert('you clicked ' + i); }); } }); Але замість показу 'you clicked 3'при натисканні на #mydiv3(як і для кожного …

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` function …

2
Чому `std :: mem :: drop` точно так само, як і закриття | _ | () у межах вищого рангу?
Реалізація std::mem::dropдокументально підтверджена таким чином: pub fn drop<T>(_x: T) { } Як таке, я б очікував, що закриття |_| ()(у розмові відоме як закриття туалету ) буде потенційною заміною 1: 1 dropв обох напрямках. Однак, наведений нижче код показує, що dropвін не сумісний із ознакою вищого рейтингу, прив'язаною до параметра …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.