問題タブ [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.
time - TCL-関数がどれだけの時間を働いたかを知る方法は?
procがあり、procがいくつかのステートメントと関数呼び出しで構成されているとします。関数がこれまでにどれくらいの時間を要したかをどうやって知ることができますか?
ruby - Hash.each とラムダの間のアリティの不一致
Josh Susserから次の例を取り上げました。
Railsコンソール(irb)に入れ、ハッシュで呼び出すと、次のようになります。
ラムダがアリティをチェックすることは理解していますが、ラムダの定義に 2 つの引数があります。に変更lambda do
するとProc.new do
、コードが実行され、期待される結果が得られます。
Josh の例は 2008 年のものなので、これは Ruby 1.8 と 1.9 の違いだと思います。何が起きてる?
ruby-on-rails - オブジェクトが初期化される前に呼び出される Paperclip 動的 Proc スタイル
次のペーパークリップのセットアップがあります。何が起こるかというと、さまざまなスタイルのサイズを設定するために proc を使用しているということです。ただし、proc は new で呼び出され、super 呼び出し中に呼び出されます。デバッガーを調べたところ、最初に :photo パラメーターを処理するように見えるため、添付ファイルを初期化し、スタイル プロシージャを呼び出します。この時点で、実際のオブジェクト (写真) は、渡されたパラメーター (特に photo.gallery_id) によって初期化されていません。そのため、スタイルが正しく設定されません. 再処理を試みましたが、役に立ちませんでした. これに数日を費やしましたが、まだ運がありません. 助けていただければ幸いです!
ruby - 付属のブロックを通過する呼び出しを委任するにはどうすればよいですか?
私はオブジェクト グラフをトラバースしていて、メソッドから構造の各ノードで実行されるブロックを渡したいと考えています。
上部では、ブロックを使用して呼び出しを行います。ルート オブジェクトを訪問するための最初の呼び出しを、他のオブジェクトを訪問するように委任したいと考えています。&last_parameter_name を使用してローカルでブロックを proc にアンパックできますが、委譲された呼び出しで proc をブロックに戻すにはどうすればよいですか?
これは、 first(...)を呼び出し、ブロックをsecond(...)への呼び出しに委譲する簡単な例です。
注: ここでは、first() と second() で同じ規則を使用する必要があります。つまり、同じものを使用する必要があります。
答えを読んで試してみたので、より完全で実用的な例を思いつきました:
ruby - ルビーブロック内の「return」キーワードの動作
誰かが次の行動を説明できますか
Procs(ブロックとは何か)は、呼び出されたスコープ内に戻る必要があることを理解しています。(ラムダとは異なり)これを念頭に置いて、テストの両方の呼び出しが「ブロックの終わり」を返すべきではありませんか?
このテストは'ruby1.8.7(2009-06-12 patchlevel 174)[universal-darwin10.0]'(OSX 10.6.7)に合格します
ruby - 別のスコープで定義された Proc からのローカル変数の参照
ポリモーフィックな方法で上書きの実装に応じて、別のメソッドの戻り値で動作を変化させるインスタンス メソッドを作成したいと考えています。
たとえば、次のクラスは拡張されると想定されpricing_rule
ており、製品によって変更されることになっています。
しかし、これを実行すると、未定義のローカル変数エラーが発生します。Proc のインスタンスが Purchase のインスタンスを参照していることは理解していますが、prices
変数を discount_price メソッドに配置する必要がある同様の状況に遭遇することがありました。Proc の呼び出し元でローカル変数を参照するスマートな方法はありますか?
wrapper - tcl: 同じ名前の proc をラップします
「proc N」の定義を、同じ名前と呼び出し規約の proc に置き換えたいと思いますが、エラー検出コードを少し追加します。
Pythonでは、以下のようにやりたいことができましたが、名前空間と関数ハンドルがtclでどのように機能するかを把握していません.
ruby - Rubyブロック、procs、instance_eval
私は最近、これに似た何かをしようとしました:
エラーが発生します:
TypeError:Procを文字列に変換できません
しかし、これは機能します:
この方法の詳細:
同じProc to String
エラーが発生します。
だから...ブロックについての私の理解は、それらが単なるprocであるということです。&
しかし、このアンパサンドを持つことには明らかに特別なことがあります...
誰かが私にこれを説明できますか?&block
通常のprocをこのオブジェクトの特別なものに変換することは可能ですか?
編集
私の2番目の質問を理解し&
、procの前に追加します...それは簡単でしたが、これは実際に何をしているのでしょうか?
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)にも当てはまりますか?
default - TCL proc 引数のデフォルト値として変数を使用する方法
引数のデフォルト値として使用したい変数があります。
これを行う方法はありますか、またはプロシージャ内の変数を評価する必要がありますか?