問題タブ [deferred-execution]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 非汎用バージョンのIEnumerableは、遅延実行をサポートしていますか?
もしそうなら、それはどの.NET Frameworkバージョンでサポートされていますか?
これを.NETFramework4.0でテストしましたが、正常に動作します。
c# - これら2つのlinq実装の違いは何ですか?
JonSkeetのReimplemntingLinqtoObjectsシリーズを実行していました。whereの記事の実装で、次のスニペットを見つけましたが、元のメソッドを2つに分割することで得られる利点がわかりません。
元の方法:
リファクタリングされた方法:
ジョンは言います-それは熱心な検証のためであり、それから残りの部分のために延期します。でも、わかりません。
誰かがそれをもう少し詳しく説明してもらえますか、これら2つの機能の違いは何ですか、そしてなぜ検証が一方で実行され、もう一方では熱心に実行されないのですか?
結論/解決策:
どの関数がイテレータージェネレーターであると判断されるかについての理解が不足していたため、混乱しました。IEnumerable
<T>
のようなメソッドのシグネチャに基づいていると思い ました。しかし、答えに基づいて、今私はそれを理解しました、それがyield ステートメントを使用する場合、メソッドはイテレーター-ジェネレーターです。
vb.net - VB.NET での遅延実行?
上記のコードでは、接続が利用できないときに LoadData 関数を再帰しようとしています。利用可能になったときにロードを延期したいと考えています。
問題は、ラムダ式で param を使用できないため、ByRef
上記のコードによってコンパイラ エラーが発生することです。
これを正しい方法で行う方法はありますか?
python - パッケージ化された関数が遅延ライブラリでアクセスできる情報はどれくらいですか?
関数を延期していくつかの引数を渡すと、関数はそれらの引数を持ち、それらを操作できますが、インスタンス化されたオブジェクトの一部である関数 (たとえば) は、そのオブジェクトの変数にアクセスできますか?
基本的に、引数として必要なすべての情報を関数に与える必要がありますか?
また、それへの唯一の参照が遅延関数にある場合、baz は破棄されますか?
objective-c - Objective-C で Go から 'defer' ステートメントを実装していますか?
今日、私defer
は Go 言語のステートメントについて読みました:
deferステートメントは、関数呼び出しをリストにプッシュします。保存された呼び出しのリストは、周囲の関数が戻った後に実行されます。Defer は、さまざまなクリーンアップ アクションを実行する関数を単純化するためによく使用されます。
このようなものを Objective-C で実装するのは楽しいだろうと思いました。それを行う方法について何か考えがありますか?ディスパッチ ファイナライザー、自動解放オブジェクト、および C++ デストラクタについて考えました。
自動解放されたオブジェクト:
現在のスコープが終了すると他のソリューションがトリガーされるため、自動解放されたオブジェクトは、少なくとも関数の最後まで続く唯一のソリューションのようです。一方で、それらは記憶にずっと長くとどまる可能性があり、これは問題を引き起こします.
ブロックはスタック上に存在するため、スタックがアンロールされたときに何かを簡単に実行できるため、ディスパッチ ファイナライザーが最初に考えられました。しかし、ドキュメンテーションをのぞいてみると、単純な「デストラクタ」関数をブロックにアタッチできるようには見えませんよね?
C++ デストラクタもほぼ同じです。デストラクタの実行時に実行されるブロックを含むスタック ベースのオブジェクトを作成します。.m
これには、プレーンファイルを Objective-C++ に変換するという醜い欠点がありますか?
このようなものを本番環境で使用することについてはあまり考えていません。さまざまなソリューションに興味があるだけです。明らかな欠点なしで、機能するものを思いつくことができますか? 範囲ベースのソリューションと機能ベースのソリューションの両方が興味深いでしょう。
.net - 複数のIEnumerableを同時に反復処理するにはどうすればよいですか?
IEnumerable<T>
多くの要素を持つ2つ(またはそれ以上)があると仮定します。すべてIEnumerable
に別のタイプがありT
ます。リストは非常に長くなる可能性があるため、メモリに完全にロードしないでください。
私がやりたいのは、これらのリストを繰り返し処理し、最長または最短のリストの最後に到達するまで、ステップごとに1つのint、1つの文字列、および1つのDateTimeを含むアイテムを取得することです。両方のケースをサポートする必要があります(bool param longest vs. shortestなど)。短いリストで利用できないすべてのアイテムについて(すでに終わりに達しているため)、デフォルト値を期待します。
遅延実行を使用してlinqでこれを行うことは可能ですか?IEnumeratorsをyieldreturnと直接組み合わせて使用するソリューションを知っています。.NET2で2つのIEnumerableを同時に反復処理する方法を参照してください。
.net - IEnumerable の再利用.Any() などで false の結果になる
私は延期された実行の土地で少し迷っています:
IEnumerable 実装クラスのインスタンスを宣言します
次に、それを繰り返します(最初の単語は「Lorem」です)
.. コンソールに書き込まれます。
その後、コードで私は
..出力として False を取得します。
ここで、.Any(..) 部分を foreach ループの上に置くと、true になりますが、ループは 2 番目の単語から始まります。
私の期待は、.NetがIEnumerableとその基礎となるIEnumeratorへの呼び出しごとに異なるランタイム「コンテキスト」を作成するため、それらが干渉しないことでした...適切な結果?
ここで何が欠けていますか?
更新:
- IEnumerable 実装へのリンク: https://gist.github.com/814352
- IEnumerator 実装へのリンク: https://gist.github.com/814354
- .. そして最後に、基礎となるテキスト パーサーの実装: https://gist.github.com/814358
.. 基本的には、特定の文字列内の単語を反復処理できる IEnumerable です。
javascript - ドキュメントの準備ができるまで、外部スクリプトからの document.write を遅らせる/遅らせる
広告を読み込む外部スクリプトがあります。ロード中のスクリプトには、への呼び出しが含まれていますdocument.write
。問題は、これによりドキュメントのサイトへの準備が遅れることです。ドキュメントの準備が整うまで、これを表示するのを遅らせたいと思います。
現在、外部コンテンツをロードする関数を jquery doc の準備ができている状態でラップしようとしましたが、ページが爆発します。広告といくつかのコードだけが表示された真っ白な画面になります。
これは明らかに、ページが読み込まれた後に document.write が実行されているためです。これを回避する方法や、ドキュメントの準備が整うまで外部コンテンツの読み込みを遅らせる方法を知っている人はいますか?