問題タブ [proc-object]

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 投票する
4 に答える
21031 参照

time - TCL-関数がどれだけの時間を働いたかを知る方法は?

procがあり、procがいくつかのステートメントと関数呼び出しで構成されているとします。関数がこれまでにどれくらいの時間を要したかをどうやって知ることができますか?

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

ruby - Hash.each とラムダの間のアリティの不一致

Josh Susserから次の例を取り上げました。

Railsコンソール(irb)に入れ、ハッシュで呼び出すと、次のようになります。

ラムダがアリティをチェックすることは理解していますが、ラムダの定義に 2 つの引数があります。に変更lambda doするとProc.new do、コードが実行され、期待される結果が得られます。

Josh の例は 2008 年のものなので、これは Ruby 1.8 と 1.9 の違いだと思います。何が起きてる?

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

ruby-on-rails - オブジェクトが初期化される前に呼び出される Paperclip 動的 Proc スタイル

次のペーパークリップのセットアップがあります。何が起こるかというと、さまざまなスタイルのサイズを設定するために proc を使用しているということです。ただし、proc は new で呼び出され、super 呼び出し中に呼び出されます。デバッガーを調べたところ、最初に :photo パラメーターを処理するように見えるため、添付ファイルを初期化し、スタイル プロシージャを呼び出します。この時点で、実際のオブジェクト (写真) は、渡されたパラメーター (特に photo.gallery_id) によって初期化されていません。そのため、スタイルが正しく設定されません. 再処理を試みましたが、役に立ちませんでした. これに数日を費やしましたが、まだ運がありません. 助けていただければ幸いです!

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

ruby - 付属のブロックを通過する呼び出しを委任するにはどうすればよいですか?

私はオブジェクト グラフをトラバースしていて、メソッドから構造の各ノードで実行されるブロックを渡したいと考えています

上部では、ブロックを使用して呼び出しを行います。ルート オブジェクトを訪問するための最初の呼び出しを、他のオブジェクトを訪問するように委任したいと考えています。&last_parameter_name を使用してローカルでブロックを proc にアンパックできますが、委譲された呼び出しで proc をブロックに戻すにはどうすればよいですか?

これは、 first(...)を呼び出し、ブロックをsecond(...)への呼び出しに委譲する簡単な例です。

注: ここでは、first() と second() で同じ規則を使用する必要があります。つまり、同じものを使用する必要があります。

答えを読んで試してみたので、より完全で実用的な例を思いつきました:

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

ruby - ルビーブロック内の「return」キーワードの動作

誰かが次の行動を説明できますか

Procs(ブロックとは何か)は、呼び出されたスコープ内に戻る必要があることを理解しています。(ラムダとは異なり)これを念頭に置いて、テストの両方の呼び出しが「ブロックの終わり」を返すべきではありませんか?

このテストは'ruby1.8.7(2009-06-12 patchlevel 174)[universal-darwin10.0]'(OSX 10.6.7)に合格します

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

ruby - 別のスコープで定義された Proc からのローカル変数の参照

ポリモーフィックな方法で上書きの実装に応じて、別のメソッドの戻り値で動作を変化させるインスタンス メソッドを作成したいと考えています。

たとえば、次のクラスは拡張されると想定されpricing_ruleており、製品によって変更されることになっています。

しかし、これを実行すると、未定義のローカル変数エラーが発生します。Proc のインスタンスが Purchase のインスタンスを参照していることは理解していますが、prices変数を discount_price メソッドに配置する必要がある同様の状況に遭遇することがありました。Proc の呼び出し元でローカル変数を参照するスマートな方法はありますか?

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

wrapper - tcl: 同じ名前の proc をラップします

「proc N」の定義を、同じ名前と呼び出し規約の proc に置き換えたいと思いますが、エラー検出コードを少し追加します。

Pythonでは、以下のようにやりたいことができましたが、名前空間と関数ハンドルがtclでどのように機能するかを把握していません.

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

ruby - Rubyブロック、procs、instance_eval

私は最近、これに似た何かをしようとしました:

エラーが発生します:

TypeError:Procを文字列に変換できません

しかし、これは機能します:

この方法の詳細:

同じProc to Stringエラーが発生します。

だから...ブロックについての私の理解は、それらが単なるprocであるということです。&しかし、このアンパサンドを持つことには明らかに特別なことがあります...

誰かが私にこれを説明できますか?&block通常のprocをこのオブジェクトの特別なものに変換することは可能ですか?

編集

私の2番目の質問を理解し&、procの前に追加します...それは簡単でしたが、これは実際に何をしているのでしょうか?

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

ruby-on-rails - RubyのProc.new:いつ使用する必要がありますか?

その例のdate_validatorにはコメントがあります:

つまり、現在の時刻に関連するメソッド(Time.now、1.day.since(Time.zone.now)など)を使用するコードのすべての場所で、それらをProc.new {}で囲む必要がありますか?

交換してから、これは完全にはわかりません

私には意味がありません(新しいタイプのオブジェクトが返されます)。

したがって、問題は、時間に関連するメソッドでProc.newをいつどのように使用する必要があるかということです。そして、それは最新バージョンのRuby(1.92)とRails(3.1)にも当てはまりますか?

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

default - TCL proc 引数のデフォルト値として変数を使用する方法

引数のデフォルト値として使用したい変数があります。

これを行う方法はありますか、またはプロシージャ内の変数を評価する必要がありますか?