問題タブ [yield-keyword]
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.
iterator - イテレータを認識するコンパイラはどのように実装できますか?
私はしばらくイテレータを使用しており、気に入っています。
しかし、よく考えてみたものの、「イテレータを認識するコンパイラ」の実装方法がわかりませんでした。私もそれについて調査しましたが、コンパイラ設計のコンテキストで状況を説明するリソースを見つけることができませんでした。
詳しく言うと、イテレータに関する記事のほとんどは、目的の動作を実装するある種の「魔法」があることを暗示しています。彼らは、実行がどこにあるか(最後の「yield return」が見られる場所)に従うために、コンパイラがステートマシンを維持することを示唆しています。私は、遅延評価を可能にする Iterator のこのプロパティに特に興味があります。
ところで、私はステート マシンが何であるかを知っており、既にコンパイラの設計コースを受講しており、Dragon Book を研究しています。しかしどうやら、私が研究したことを csc の「魔法」と関連付けることはできないようです。
知識や差別的な考えは大歓迎です。
javascript - Javascript チェック イールド サポート
JavaScript の yield キーワードについて読みましたが、それを自分のプロジェクトで使用する必要があります。このキーワードは特定のバージョンの JS から実装されていると読んだので、古いブラウザーではサポートされていないと思います (右?)。
yield キーワードがサポートされているかどうかを確認する方法はありますか? または、少なくとも JS のバージョンがそのキーワードを実装するバージョン (1.7) 以上であるかどうかを確認する方法はありますか?
swing - 値を設定する利回りのscala
のリストを作りたいGridBagPanel.Constraints
。scala プログラミングの本で、クールなfor-yield
構造があることを読みましたが、コードがコンパイルされないため、正しく動作する方法を理解していない可能性があります。ここにあります:
を生成しList[Constraints]
、すべての制約に対して異なる x、y 値を設定したいので、後でコンポーネントを追加すると、それらはグリッドになります。
c# - YIELDを使用してコレクションを返す読み取り専用の方法はありますか?
読み取り専用にしたいコレクションプロパティを持つインターフェイスを作成しています。インターフェイスのユーザーがコレクションを変更できるようにしたくありません。読み取り専用コレクションプロパティを作成するために私が見つけた典型的な提案は、プロパティのタイプを次のようにIEnumerableに設定することです。
ただし、これは、ユーザーがIEnumerableをリストにキャストして変更することを妨げるものではありません。
Yield
直接返す代わりにキーワードを使用する_mylist
と、インターフェイスのユーザーがコレクションを変更できなくなります。実際のコレクションではなく、オブジェクトを1つずつ返すだけなので、そう思います。
ruby-on-rails-3 - ヘルパー メソッドが yield キーワードを使用すると、Rails の部分的なテンプレートが繰り返しレンダリングされる
部分的なレイアウトと、yield キーワードを使用してイテレータとしてコード化されたヘルパー メソッドをレールで使用すると、奇妙な動作が見られます。私は誰かができることを願っています:
- 何が起こっているのか、なぜレンダリングが重複するのかを説明してください。
- うまくいけば、リストを返す単純な関数になるようにヘルパー メソッドを再コーディングする以外に、別のアプローチを提案します (暫定的な回避策として既に実行しています)。
したがって、Rails 3 アプリで次の 3 つを作成すると、予期しない出力が得られます。
[更新] 次の組み合わせをテストしました。
erb と haml の問題かもしれませんが、最初にこれを発見したときは haml テンプレートでした。うーん....何が起こっているのか知っている人はいますか?
A) このようなメイン テンプレート (app/views/main/index.html.erb)
B) このようなヘルパー メソッド (app/helpers/main_helper.rb)
C) このような部分テンプレート (app/views/main/_partial.html.erb)
ブラウザーで結果を表示すると、「iterator running with」ブロックが合計 8 回表示されます (1 2 3 4 1 2 3 4)。Railsの部分的なテンプレートメカニズムをねじ込む my_iterator 内の歩留まりであると判断しました。my_iterator を次のようにコーディングすると、出力は期待どおりになります。(my_iterator.each を実行するように部分テンプレートを変更する必要もあります)
これをコーディングして、レールを台無しにしてレンダリングを重複させずに、yield を使用してイテレータとしてヘルパー メソッドをコーディングできるようにする方法はありますか? また、重複したレンダリングがどのように発生するかを誰かが正確に説明できますか?
ruby - 「yield」キーワードはRubyで何をしますか?
次のRubyコードに遭遇しました。
メソッドは何をしeach
ますか?特に、何をしているのかわかりませんyield
。
scala - Scalaのリストの代わりに「yield」を使用して「Iterator」を生成することは可能ですか?
すべての値を評価せずに、yieldをイテレータとして使用することは可能ですか?
Iterator
複雑なリスト生成を実装するのが簡単で、結果を必要としないため、それをに変換する必要がある場合、これは一般的なタスクです...
python - Djangoの「yield」関数の代替手段は何ですか
'yield'関数は、出力をブラウザーにストリーミングします。つまり、応答に値を追加します。
私の要件は、「追加」の代わりに、古い値を上書きする組み込み関数があるか、または単に古い値に新しい値を追加しないと言うことです。
私の要件を説明するには:
以下は私の「views.py」の関数です:
上記の関数の出力は次のとおりです。
ご覧のとおり、パーセンテージは前に渡された値に追加されますが、古い値を新しい値で上書きしたいと思います。
Django / pythonにこの動作のための組み込み関数はありますか?または、コードを使用してこれをシミュレートできますか?
前もって感謝します。
dynamic - C#コンパイラが「yieldreturn」の前に「割り当てられていない変数の使用」を主張し、動的であるのはなぜですか?
resultingThing
コンパイラは、以下のコードで割り当てられる前に使用されていると文句を言います。
なぜそれがこれを主張するのですか?
私は、yieldの使用法がない(たとえば、だけreturn IEnumerable<IThing>
)が動的パラメーターを使用する別のバージョンのメソッドを試しました。また、動的が渡されないバージョンのメソッド(つまり、私たちが行ったこと)を試しました。以前のバージョンのC#)。これらはコンパイルします。
javascript - 「yield」キーワードを使用した Javascript ジェネレーター
HTML5 の新しい canvas タグを試しています。このタグでは、いくつかの単純な形状をレンダリングしてアニメーション化します。私のキャンバスのスクリプトには次の機能があります。
何らかの理由で、このコードは Firefox では見事に実行されますが、Chrome ではまったく機能しません。どちらのブラウザも最新バージョンで、script タグは version=1.8 とマークされています (version=1.7 も機能しませんでした)。
「yield」キーワードは Chrome などで機能していませんか? そうなることを願っています。ジェネレーターはよりクリーンなコードを作成します!
その質問に対する具体的な「はい」または「いいえ」の答えは見つかりませんでした。