問題タブ [enumerator]
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.
.net - リストの列挙子を関数に渡す
リストの列挙子を関数「byval」に渡すことは、「byref」に渡すこととはまったく異なるように見えます。基本的に、通常の「byval」パスは、関数が列挙子を進めても、呼び出し元の「enumerator.Currentvalue」を変更しません。なぜそうなのか誰かが知っているのだろうか?列挙子は、オブジェクト参照のない整数のようなプリミティブであり、したがって、列挙子への変更は呼び出し元に反映されませんか?
サンプルコードは次のとおりです。
この関数はbyvalであり、無限ループに陥り、「1」メッセージボックスを吐き出します。これは、列挙子の「現在」が5を超えて進むことがないためです。
一方、これは期待どおりに機能します。
2つの関数の違いは、listFirstItem__関数がbyvalまたはbyref列挙子を受け入れるかどうかだけです。
ruby - 列挙子オブジェクトとは (String#gsubで作成)
次のような属性配列があります。
私がこれをするとき、
ターミナルで次の出力を取得します
出力として列挙子オブジェクトを取得するのはなぜですか? 前もって感謝します。
attributes[-1].gsub("Photo:", ""), I am doing attributes[-1].gsub("Photo:")
編集: So の代わりに、列挙子オブジェクトがここに返された理由 (エラー メッセージが表示されることを期待していました) と、何が起こっているのかを知りたいことに注意してください。
ルビー-1.9.2
レール - 3.0.7
haskell - 常に再試行する列挙子を作成する方法
私は John Millikin の enumerator パッケージを使用しData.Enumerator.Binary.enumHandle
ており、ソケット自体を接続し、結果のハンドルを列挙しようとすることを除いて、 とほぼ同等のものを作成しようとしています。問題は、接続が信頼できないという事実によるものです。何か問題が発生した場合は、再接続して列挙を再開したいと考えています。
私は通常、Enumerator が独自の意味のある Monad インスタンスであることを期待しますが、関数の型エイリアスであるため、そのモナド動作は入力ステップの単なるリーダーであり、ここではあまり使用されないようです。を使用して Enumerator をループし続ける何かを一緒に投げようとしましたcatchError
が、期待どおりに動作せず、何をしているのか理解できませんでした。 . 明らかに省略した詳細がたくさんあるので、ソリューションの骨組みだけで問題ありません。
何か案は?
ruby - Enumerator.new が「yielder」オブジェクトを必要とするのはなぜですか?
次のような単純な列挙子を考えてみましょう。
私の質問は、なぜルビーはyielderオブジェクトでyieldを呼び出す必要があるのですか? 別の言い方をすれば: に置き換えられないのはなぜyielder.yield number
ですかyield number
? この例では、許可されていれば同じものに見えます。自明ではない方法でyielderが使用されている例はありますか? もしそうなら、あなたはそれを与えることができますか?そうでない場合、yielder の目的は何ですか?
ありがとう。
haskell - Enumerator で列挙型を作成する
免責事項: これは haskell-cafe リストで最近質問されたものです。二重投稿でお騒がせした方にはお詫び申し上げます。
私が知っているすべての iteratee 実装パッケージ (例: iteratee
、iterIO
、およびconduit
) は、パッケージを除いて、enumeratee 構成関数を定義しenumerator
ます。これは深刻な制限のように思えますが、実装も比較的簡単に思えます。
私が見逃している落とし穴はありますか?enumerator
または、列挙型の構成を定義しない他の理由はありますか?
java - HashMap のイテレータはフェイルファストであり、HashTable の列挙子はそうではないというのは、正確にはどういう意味ですか?
私は2つのクラスの違いを調べていました.この点は、このブログがソースである多くの回答で出てきました: http://javarevisited.blogspot.com/2010/10/difference-between-hashmap-and. html
しかし、私はそれを完全には理解していません。誰かがこれを詳しく説明できますか?おそらく例で?
ご覧いただきありがとうございます。
c# - C# GetEnumerator() の再帰バージョンを作成する方法
GetEnumerator() の再帰バージョンを作成する方法について誰かアドバイスをもらえますか? 有名なハノイの塔の問題は、私が抱えている実際の問題に匹敵する例として役立つかもしれません。高さ n の円盤のスタックのすべての動きを表示する単純なアルゴリズムは次のとおりです。
私が実際にやりたいことは、IEnumerable を実装し、次のようにすべての移動を反復できるようにするクラス HanoiTowerMoves をセットアップすることです。
GetEnumerator() の実装に向けた最初のステップでは、MoveTower パラメーターを取り除くようです。これは、スタックを使用して簡単に実行できます。また、パラメーターを 1 つの変数に結合するクラス Move も導入しました。
MoveTower は次のように書き換えることができます。
このバージョンは、次のように呼び出す必要があります。
反復可能なバージョンに向けた次のステップは、クラスを実装することです。
今、私にとって大きな疑問は、GetEnumerator () の本体はどのように見えるかということです。誰かこの謎を解いてくれませんか?
以下は、私が作成したコンソール アプリケーションの Program.cs のコードです。
c# - .GetType() を使用した IEnumerable 警告の複数列挙の可能性
次のコードで ReSharper の警告「IEnumerable の複数の列挙が可能です」が表示されます。
説明されている多くのスタックオーバーフロー トピック (およびhttp://confluence.jetbrains.net/display/ReSharper/Possible+multiple+enumeration+of+IEnumerable ) と同様に、ReSharper はクエリが 2 回実行されることを認識します。
私の質問は、「GetType()」ステートメントがクエリとして認識される理由です。
なにか提案を?
前もって感謝します。
ruby - 必要な順序を確立するために ***each*** をオーバーロードするにはどうすればよいですか
これは、順序で各メソッドをオーバーロードするに投稿された質問に似ていますが、関連するすべての列挙可能なメソッドを再定義せずにサポートしたいという違いがあります。
mixin を使用して、 enumerable によって提供されるすべての関連付けられたメソッドを、それぞれを再定義せずにオーバーライドするにはどうすればよいですか。例えば:
生成:
eachを再定義しても、collectが再定義されていないようです!
c# - なぜ C# 配列は列挙型に参照型を使用するのにリスト型を使用するのですか?可変構造体を使用しますか?
私が読んだことから、パフォーマンス上の理由から、特定のコレクションの列挙型を参照型ではなく変更可能な構造体にする設計上の決定が下されました。List.Enumerator は最もよく知られています。
配列を使用する古いコードを調査していたところ、C# 配列が参照型である汎用列挙子型として SZGenericArrayEnumerator 型を返すことを発見して驚きました。
他の非常に多くのパフォーマンスが重要なコレクションが代わりに可変構造体を使用しているときに、Array の汎用イテレータが参照型として実装された理由を誰かが知っているかどうか疑問に思っています。