問題タブ [yield]

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.

0 投票する
3 に答える
1372 参照

c# - C# の yield return が期待どおりに項目を返さない

私は次のコードを持っています:

ProcessQueue が呼び出されると、最初はキューに 1 つの項目があります。PerformAction 中に、_messageQueue にさらに項目を追加します。ただし、foreach ループは最初の項目の後に終了し、後続の項目が追加されたことを認識しません。

どういうわけか、キューの初期状態がyieldによってキャプチャされているように感じます。

誰かが何が起こっているのかを説明し、解決策を提供できますか?

0 投票する
1 に答える
7041 参照

c# - ネストされたメソッドでのC#の歩留まり

次のコードをステップ実行すると、ReturnOne()の呼び出しはスキップされます。

私がやっていることは有効ではないので、コンパイラがそれを取り除いているとしか思えません。列挙をさまざまなメソッドに分離できるようにしたいと思います。これは可能ですか?

0 投票する
1 に答える
778 参照

c# - yield キーワードがないため、VB.NET で Caliburn のようなコルーチンを実装する方法はありますか?

SOに関するvb.netの質問で他の収量 認識していることに注意してください。

最近はカリバーンで遊んでいます。コルーチンの実装など、素晴らしいものがたくさんあります。

私が行っている作業のほとんどは C# ベースですが、現在、Rob の小さな MVVM フレームワークに基づいて、VB.NET のみのショップ向けのアーキテクチャ ガイドラインも作成しています。

VB のコルーチンを使用することを除いて、すべてが非常によく見えます。VB 10 が使用されているため、Bill McCarthy の提案のようなものを試すことができます。

以下のようなもう少し複雑なコルーチン メソッド (Rob の GameLibrary から取得) を VB で記述する方法を理解できていません。

それを達成する方法、またはVBでCaliburnコルーチンを使用することについての考えはありますか?


編集:

マルコは私に正しい方向を示しました。Reflector - Rob の GameLibrary の Visual Basic コードを調べた後、Bill McCarthy の GenericIterator を変更して、貧乏人のステート マシンにすることができました。

そして、次のように使用できます。

C# バージョンほどエレガントではありませんが、実行可能に見えます。これに問題があるかどうかを確認します。誰かがより良い考えを持っているなら、私はすべての耳です。

0 投票する
5 に答える
144 参照

c# - Attribute lost with yield

There is some code that I'm trying to convert from IList to IEnumerable:

The problem is, SetupSomething() comes from the base class and uses:

yield ends up creating MoveNext(), MoveNext() calls SetupSomething(), and MoveNext() does not have the [Something(123)] attribute.

I can't change the base class, so it appears I am forced to stay with IList or implement IEnumerable manually (and add the attribute to MoveNext()).

Is there any other way to make yield work in this scenario?

0 投票する
4 に答える
3705 参照

ruby-on-rails - Rails 3-yield returnまたはコールバックはビューで呼び出されません<%= yield(:sidebar)|| render('shared / sidebar')%>

WebサイトをRails2(最新)からRails 3(beta2)に移行しています。Ruby1.9.1p378およびRuby1.9.2dev
を使用 したテスト(2010-04-05トランク27225)

状況にとらわれて、どの部分がうまくいくかわかりません。容疑者yieldが問題ですが、正確にはわかりません。

私のレイアウトファイルでは、次の手法を頻繁に使用しています。

app/views/layouts/application.html.erb


たとえば、部分的な外観は次のようになります。

app/views/shared/_sidebar.html.erb


さあ、重要な部分の時間です!
どのビューでも、ブロックを作成したいと思いますcontent_for(オプション)。これには、以下のHTMLなどの例を含めることができます。このブロックが設定されている場合、内部のpiceHTMLはでレンダリングされapplication.html.erbます。そうでない場合、Railsは右側
のPartialをレンダリングする必要があります。shared/_sidebar.html.erb

app/views/books/index.html.erb


だからあなたはアイデアを持っています。うまくいけば。この手法は、Rails2.xアプリケーションでうまく機能しました。
現在、Rails 3 (beta2)ではyield、パーツのみが機能しています。

サイドはorレールやおそらくルビーでは処理されません。

入力と時間をありがとう!

0 投票する
1 に答える
385 参照

dsl - カスタム言語での「ジェネレーター」サポートの実装

私は言語設計に少し興味があり、現在、自分の趣味の言語で遊んでいます。( http://rogeralsing.com/2010/04/14/playing-with-plastic/ )

私の心を本当に出血させるのは、「ジェネレーター」と「収量」のキーワードです。C# が AST 変換を使用して列挙子メソッドをステートマシンに変換することは知っています。

しかし、他の言語ではどのように機能するのでしょうか? AST 変換のない言語でジェネレーターのサポートを取得する方法はありますか? たとえば、Python や Ruby などの言語は、これを解決するために AST 変換に頼っていますか?

(問題は、ジェネレーターがさまざまな言語で内部でどのように実装されているかであり、それらのいずれかでジェネレーターを記述する方法ではありません)

0 投票する
4 に答える
23762 参照

multithreading - マルチスレッド、いつ降伏するか対スリープするか

用語を明確にするために、yieldはスレッドがタイムスライスを放棄するときです。私の興味のあるプラットフォームはPOSIXスレッドですが、質問は一般的だと思います。

私が消費者/生産者パターンを持っているとしましょう。消費者と生産者のどちらを使用するか、睡眠するか、譲歩するかを抑制したい場合はどうすればよいですか?私は主にどちらかの機能を使用する効率に興味があります。

0 投票する
1 に答える
823 参照

c# - 拡張メソッド内で「yield」演算子を使用することはスレッドセーフですか?

拡張メソッド内でyield演算子を使用することはスレッドセーフでしょうか?

例えば:

0 投票する
3 に答える
421 参照

java - この再帰的なPythonメソッドをJavaに変換する最良の方法は何ですか?

別の質問では、中国人郵便配達問題の特定のセットを生成することを含む素晴らしい答えが提供されました。

提供された答えは次のとおりです。

これにより、次の目的の結果が出力されます。

これは、Pythonの表現力を実際に示しています。これは、アルゴリズムの擬似コードを作成する方法とほぼ同じだからです。私は特に、利回りの使い方と、セットが一級市民として扱われる方法が好きです。

しかし、そこに私の問題があります。

次の方法が最適です。

1.Javaでyieldreturn構文の機能を複製しますか?代わりに、リストを維持し、私の部分的な結果をこのリストに追加するのが最善でしょうか?歩留まりキーワードをどのように処理しますか。

2.セットの取り扱いは?Setインターフェイスを実装するJavaコレクションの1つを使用してから、removeAll()などを使用してセットの違いを得ることができると思います。その場合、これはあなたがすることですか?

最終的に、私はこのメソッドをJavaで可能な限り簡潔でわかりやすい方法に減らすことを目指しています。このメソッドのJavaバージョンのreturnタイプは、int配列のリストなどを返す可能性が高いと思います。

このメソッドをJavaに変換するとき、上記の状況をどのように処理しますか?

0 投票する
3 に答える
3789 参照

c# - yield は遅延読み込みのパターンをどのように実装しますか?

のパターンをどのようyieldに実装しlazy loadingますか?