タグ付けされた質問 「closures」

クロージャは、それが定義されたスコープの変数を参照する(閉じる)ファーストクラスの関数です。定義されたスコープが終了した後もクロージャーがまだ存在する場合、クローズする変数も存在し続けます。

7
Java 7での閉鎖[終了]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか?Stack Overflowのトピックとなるように質問を更新します。 2年前休業。 この質問を改善する 閉鎖とは何ですか?Java 7に含まれることになっている(クロージャはJava 7に含めるために議論されたが、最終的には含まれていなかった。-ed)缶誰でも私は、クロージャについてのものを学ぶことができるところから、いくつかの信頼性の参照を私に提供してください?
105 java  closures 

4
入れ子関数のローカル変数
わかりました、これについては我慢してください。恐ろしく複雑に見えることはわかっていますが、何が起こっているのかを理解するのを手伝ってください。 from functools import partial class Cage(object): def __init__(self, animal): self.animal = animal def gotimes(do_the_petting): do_the_petting() def get_petters(): for animal in ['cow', 'dog', 'cat']: cage = Cage(animal) def pet_function(): print "Mary pets the " + cage.animal + "." yield (animal, partial(gotimes, pet_function)) funs = list(get_petters()) for name, f in funs: …

7
Swiftのブロック(animateWithDuration:animations:completion :)
Swiftでブロックを機能させるのに問題があります。これが機能した例です(完了ブロックなし)。 UIView.animateWithDuration(0.07) { self.someButton.alpha = 1 } または、末尾のクロージャーなし: UIView.animateWithDuration(0.2, animations: { self.someButton.alpha = 1 }) しかし、完了ブロックを追加しようとすると、機能しません。 UIView.animateWithDuration(0.2, animations: { self.blurBg.alpha = 1 }, completion: { self.blurBg.hidden = true }) オートコンプリートは私に与えますcompletion: ((Bool) -> Void)?が、それを動作させる方法はわかりません。末尾のクロージャでも試しましたが、同じエラーが発生しました: ! Could not find an overload for 'animateWithDuration that accepts the supplied arguments Swift 3/4のアップデート: // This …
102 ios  swift  closures 

1
変更されたクロージャーへのアクセス(2)
これはAccess to Modified Closureからの質問の延長です。以下が実際に本番環境で使用するのに十分安全かどうかを確認したいだけです。 List<string> lists = new List<string>(); //Code to retrieve lists from DB foreach (string list in lists) { Button btn = new Button(); btn.Click += new EventHandler(delegate { MessageBox.Show(list); }); } 私はスタートアップごとに一度だけ上記を実行します。現時点では、問題なく動作しているようです。ジョンがいくつかのケースで直観に反する結果について言及したように。だから私はここで何に注意する必要がありますか?リストが複数回実行されても問題ありませんか?
101 c#  .net  resharper  closures 

2
なぜ繊維が必要なのですか
ファイバーの場合、古典的な例:フィボナッチ数列の生成 fib = Fiber.new do x, y = 0, 1 loop do Fiber.yield y x,y = y,x+y end end ここにファイバーが必要なのはなぜですか?これを同じProcで書き換えることができます(実際には、クロージャー)。 def clsr x, y = 0, 1 Proc.new do x, y = y, x + y x end end そう 10.times { puts fib.resume } そして prc = clsr 10.times …
100 ruby  lambda  closures  fibers  proc 

6
このJavaScriptパターンは何と呼ばれ、なぜ使用されているのですか?
私は勉強してTHREE.jsをし、関数がそうのように定義されたパターンに気づきました: var foo = ( function () { var bar = new Bar(); return function ( ) { //actual logic using bar from above. //return result; }; }()); (例はレイキャスト法を参照してくださいここに)。 このようなメソッドの通常のバリエーションは次のようになります。 var foo = function () { var bar = new Bar(); //actual logic. //return result; }; 最初のバージョンを通常のバリエーションと比較すると、最初のバージョンは次の点で異なっているようです。 自己実行関数の結果を割り当てます。 この関数内でローカル変数を定義します。 ローカル変数を使用するロジックを含む実際の関数を返します。 …

2
Swift @escapingおよびCompletion Handler
スウィフトの「クロージャ」をより正確に理解しようとしています。 しかし@escaping、Completion Handler理解するのが難しすぎる 私は多くのSwiftの投稿や公式文書を検索しましたが、それでもまだ十分ではないと感じました。 これは公式文書のコード例です var completionHandlers: [()->Void] = [] func someFunctionWithEscapingClosure(completionHandler: @escaping ()->Void){ completionHandlers.append(completionHandler) } func someFunctionWithNoneescapingClosure(closure: ()->Void){ closure() } class SomeClass{ var x:Int = 10 func doSomething(){ someFunctionWithEscapingClosure { self.x = 100 //not excute yet } someFunctionWithNoneescapingClosure { x = 200 } } } let instance = SomeClass() …

1
PylintからのCell-var-from-loop警告
次のコードの場合: for sort_key, order in query_data['sort']: results.sort(key=lambda k: get_from_dot_path(k, sort_key), reverse=(order == -1)) Pylintはエラーを報告しました: ループで定義されたセル変数sort_key(cell-var-from-loop) 誰かがここで何が起こっているのかヒントを与えることができますか?pylintソースコードからの説明は次のとおりです。 クロージャで使用される変数は、ループで定義されます。これにより、すべてのクロージャがクローズドオーバー変数に同じ値を使用することになります。 しかし、私にはそれが何を意味するのか見当がつかない。誰かが問題の例を挙げてもらえますか?

2
匿名関数をパラメーターとして使用して外部変数にアクセスする
基本的に私はこの便利な関数を使用してdb行を処理します(PDOやその他のものに目を近づけます) function fetch($query,$func) { $query = mysql_query($query); while($r = mysql_fetch_assoc($query)) { $func($r); } } この関数を使用すると、簡単に次のことができます。 fetch("SELECT title FROM tbl", function($r){ //> $r['title'] contains the title }); 今、私はすべてを連結する必要があるとしましょう $r['title']、(これは単なる例です)。 どうすればできますか?私はこのようなことを考えていましたが、あまりエレガントではありません: $result = ''; fetch("SELECT title FROM tbl", function($r){ global $result; $result .= $r['title']; }); echo $result;
93 php  closures  scope 


12
関数ポインタ、クロージャ、ラムダ
私はちょうど今関数ポインタについて学んでいて、この主題に関するK&Rの章を読んでいたとき、最初に私を襲ったのは「ねえ、これはちょっと閉鎖のようなものだ」でした。私はこの仮定がどういうわけか根本的に間違っていることを知っていました、そしてオンラインで検索した後、私はこの比較の分析を実際には見つけませんでした。 では、なぜCスタイルの関数ポインターがクロージャーやラムダと根本的に異なるのでしょうか。私が知る限り、それは、関数を匿名で定義する慣行とは対照的に、関数ポインターがまだ定義された(名前付き)関数を指しているという事実と関係があります。 関数を関数に渡すことは、名前が付けられていない2番目のケースでは、渡される通常の日常の関数である最初のケースよりも強力であると見なされるのはなぜですか? 2つを非常に密接に比較するのが間違っている方法と理由を教えてください。 ありがとう。

6
JavaScript関数のエイリアシングが機能していないようです
私はこの質問を読んでいて、function-wrapperメソッドではなくaliasメソッドを試したかったのですが、Firefox 3または3.5beta4、あるいはGoogleChromeのデバッグウィンドウとGoogleChromeの両方で動作させることができなかったようです。テストWebページで。 Firebug: >>> window.myAlias = document.getElementById function() >>> myAlias('item1') >>> window.myAlias('item1') >>> document.getElementById('item1') <div id="item1"> これをWebページに配置すると、myAliasを呼び出すと次のエラーが発生します。 uncaught exception: [Exception... "Illegal operation on WrappedNative prototype object" nsresult: "0x8057000c (NS_ERROR_XPC_BAD_OP_ON_WN_PROTO)" location: "JS frame :: file:///[...snip...]/test.html :: <TOP_LEVEL> :: line 7" data: no] Chrome(わかりやすくするために>>>が挿入されています): >>> window.myAlias = document.getElementById function getElementById() { [native …

13
クロージャについて説明できますか(Pythonに関連しているため)?
私は閉鎖についてたくさん読んでいて、理解していると思いますが、自分自身や他の人の写真を曇らせることなく、誰かが閉鎖をできるだけ簡潔かつ明確に説明できることを望んでいます。どこで、なぜ使いたいのかを理解するのに役立つ簡単な説明を探しています。

8
JDK 8のデフォルトは、Javaの多重継承の一形態ですか?
JDK 8の新機能により、バイナリ互換性を維持しながら既存のインターフェースに追加できます。 構文は次のようなものです public interface SomeInterface() { void existingInterface(); void newInterface() default SomeClass.defaultImplementation; } このようにしてSomeInterface、この新しいバージョンにアップグレードするときの既存のすべての実装で、突然コンパイルエラーが発生することはありませんnewInterface()。 これは素晴らしいことですが、実装しなかった新しいデフォルトのメソッドを両方とも追加した2つのインターフェイスを実装するとどうなりますか?例を挙げて説明しましょう。 public interface Attendance { boolean present() default DefaultAttendance.present; } public interface Timeline { boolean present() default DefaultTimeline.present; } public class TimeTravelingStudent implements Attendance, Timeline { } // which code gets called? new TimeTravelingStudent().present(); これはJDK8の一部として定義されていますか? …

8
PHPのクロージャ…正確には、それらは何であり、いつ使用する必要がありますか?
ですから、私は素晴らしい、最新の、オブジェクト指向の方法でプログラミングしています。私はPHPが実装するOOPのさまざまな側面を定期的に利用していますが、クロージャをいつ使用する必要があるのか​​疑問に思っています。クロージャを実装することがいつ役立つかを明らかにすることができる専門家はいますか?
82 php  oop  closures 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.