問題タブ [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 に答える
4400 参照

python - yield as 代入は何をしますか? myVar = (利回り)

主にこの質問のおかげで、値を返すためにyieldに精通しています

しかし、yield が代入の右側にある場合、yield は何をするのでしょうか?

ステート マシンとコルーチンを調査しているときに、このブログのコード サンプルでこれに出会いました。

0 投票する
2 に答える
6435 参照

ruby-on-rails - Rails:レイアウト内の対応する「yield」の後に「content_for」を使用する

これは以前にも質問されたと思いますが、Google で検索しても解決策が見つかりません。

これがRails 2.3.5でやろうとしていることです:

content_forのの yield に注目してください。

デフォルトでは、Rails は yield が使用された後に :head の内容を定義することを許可しないことを知っています。これは理にかなっています。

テンプレートのレンダリング プロセスに接続しようとしましたが、これまでのところ成功していません。

したがって、私の目標は、パーシャル/テンプレート内で content_for を定義し、応答がブラウザーに送信される直前に「yield」を何らかの形で遅らせて実行できるようにすることです。

誰かが解決策を思いつきましたか?

ご挨拶と感謝、フランク

更新 weppos のアイデアに従って、ラック ミドルウェアを試してみます。ありがとう

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

python - 利回りとリターンの異なる結果

yieldこの状況でステートメントがどのように機能するかはよくわかりません。問題は、括弧のない式が与えられた場合、可能なすべての完全に括弧で囲まれた (FP) 式を生成する関数を作成することです。たとえば、入力は'1+2+3+4'5 つの FP 式に生成する必要があります。

  1. (1+(2+(3+4)))
  2. (1+((2+3)+4))
  3. ((1+2)+(3+4))
  4. ((1+(2+3))+4)
  5. (((1+2)+3)+4)

私のコードは次のとおりです。

returnステートメント (コメントアウトされた行)を使用すると、コードは期待どおりに機能します。yieldただし、コードが示すようにステートメントに変更すると、最初の 4 つの結果しか得られません。入力式のオペランドの数が増えると、もちろんより多くの結果が失われます。たとえば、入力の場合、'1+2+3+4+5'14 ではなく 8 しか得られません。

行をコメントアウトして行firstG, secondG = f(first), f(second)を置き換えることで、コードを機能させる方法を最終的に見つけました

for e in ('(' + e1 + op + e2 + ')' for e1 in firstG for e2 in secondG):

for e in ('(' + e1 + op + e2 + ')' for e1 in f(first) for e2 in f(second)):

これは、回線のためにジェネレーターの一部の「情報」が失われていることを意味firstG, secondG = f(first), f(second)しますが、本当の理由はわかりません。アイデアを教えてください。

0 投票する
8 に答える
82762 参照

c# - yield return を使用した IEnumerable と再帰

IEnumerable<T>WebForms ページでコントロールを見つけるために使用しているメソッドがあります。

yield returnメソッドは再帰的であり、再帰呼び出しの値を返すときに必要な型を返すのに問題があります。

私のコードは次のようになります。

これは現在、「式の型を変換できません」というエラーをスローします。ただし、このメソッドが type を返す場合IEnumerable<Object>、コードはビルドされますが、出力で間違った型が返されます。

yield return再帰を使用しながら使用する方法はありますか?

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

silverlight - 再帰的なsilverlight Element finder拡張メソッド

Silverlight ページのすべてのテキスト ボックスをトラバースするための拡張メソッドが必要です。常にグリッド レイアウトを使用すると仮定すると、次のようになります。

これで、次のように呼び出すことができます。

これは決して発火しません。UI要素を区別できないのはOfTypeだと思います。

どうすればいいですか?ビジュアル ツリーをフラット化し、循環させたいと考えています。テキストボックスだけでなく、必要なものをすべて取得するだけです。譲歩する場所が間違っているか、それとも頻繁に譲歩していませんか?

編集:

現在のコード

そしてグリッドは

6 つのグリッドと 1 つのボタンを返すと、まだ 1 レベルの深さしかありません!

私の現在のトラバース機能は次のとおりです。

これは、グリッドを扱っていることを知っているだけなので、2 番目の引数は必要ありません。子グリッドを使用して Traverse 関数にコールバックする必要がある最初の行からではなく、イテレータ ボックスからのみ生成します。

0 投票する
2 に答える
7148 参照

scala - Scala継続を使用したyield(yield return)の実装

yield returnScalaの継続を使用してC#をどのように実装できますか?Iterator同じスタイルでScalaを書けるようになりたいです。このScalaニュース投稿のコメントに刺し傷がありますが、機能しません(Scala 2.8.0ベータ版を使用して試してみました)。関連する質問の回答は、これが可能であることを示唆していますが、私はしばらくの間、区切られた継続で遊んでいますが、これを行う方法に頭を悩ませているようには見えません。

0 投票する
2 に答える
6383 参照

python - 反復可能なオブジェクトから一度に複数のオブジェクトを生成しますか?

反復可能なオブジェクトから一度に複数のアイテムを生成するにはどうすればよいですか?

たとえば、任意の長さのシーケンスで、反復ごとにX個の連続するアイテムのグループで、シーケンス内のアイテムを反復処理するにはどうすればよいですか?

0 投票する
2 に答える
1044 参照

c# - 例外が発生したときに、生成されたイテレータを次のアイテムに続行させる方法はありますか?

いずれかのイテレータ ブロック内で例外が発生したときに、生成されたイテレータを次のアイテムに継続させる方法はありますか?

これは現在機能していません:

0 投票する
2 に答える
449 参照

c# - 状態遷移で最短経路を生成します

ツリートラバーサルのアルゴリズムを考え出そうとしていますが、行き詰まっています。

これは(私が尋ねた他の人と比較して)かなり難しい質問なので、私は自分で考え続ける必要があるかもしれません。しかし、私はそれをここに捨てると思いました。

私は次のクラス構造を持っています:

currentTransistionsが完全に入力されると、次のようになります(私にとって):

ここでの考え方は、TFS作業項目の状態遷移をマッピングしたということです。私が今必要としているのは、「現在の状態を考えれば、どうすれば別の状態に到達できるか」という言い方です。

理想的には、次のようになります。

GetToFinalStateは、最短パスを計算し、C#のyield機能を使用して、foreachステートメントに対して一度に1つずつ提供する方法を用意する必要があります。

私は以前にyield1を使用したことがあるので、それを理解できると思います。しかし、最短経路を見つけると同時に(関数で毎回再計算せずに)それを行う方法がわかりませんか?

これまで読んだことがあるなら、ありがとう。あなたが答えを提供するならば、それから二重の感謝。

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

ruby - 単純な ruby​​ 関数をブロックを使用するように書き直す

正しい用語がわかりません。私はそれをグーグルで検索しようとしましたが、その理由で何も見つかりませんでした。

私はRubyライブラリを書いています。関数を書き直して、読みやすくするために(ブロック内?)

私はこれを行う機能を持っています

このように動作するように書き換えたい

これについて私が行く方法を概説できますか?