問題タブ [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 投票する
2 に答える
197 参照

ruby - さらに別の proc 対ラムダの議論

メソッド内で proc を呼び出すと、proc の戻り値によって、proc を呼び出した out ブロック コンテキストからの戻りがトリガーされると思いました。私が呼び出すと、プロシージャからの戻り値があったため、実行されるべきではないtest(a_block)ように感じます。puts "after the block"さらに...test(a_block)そしてtest(b_block)まったく同じように動作します。ここに違いがあるはずだと思いましたか?

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

ruby - このラムダに何が起こっていますか? 誰か説明してくれませんか

これをわかりやすく説明するリンクを参照してください...

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

ruby - クラス変数で定義された lambda/Proc 内からインスタンス変数を使用するにはどうすればよいですか?

次のコードを書きました。

これは機能しますが、@commandsハッシュがクラス変数の場合、ハッシュ内のコードは@people配列を認識しません。

@commandsハッシュをクラス変数にして、特定のオブジェクト インスタンス変数にアクセスできるようにするにはどうすればよいですか?

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

ruby-on-rails - Proc.new とアンパサンド記号を使用すると、Ruby の break ステートメントの動作が異なるのはなぜですか?

ブロックの break ステートメント ( The Ruby Programming Languageによる) は次のように定義されます。

これにより、ブロックがその反復子に戻り、反復子がそれを呼び出したメソッドに戻ります。

したがって、次のコードを実行すると、LocalJumpError が発生します。

次のコードはLocalJumpError をスローしません。アンパサンド記号の特徴は何ですか? アンパサンド記号は暗黙的に Proc.new を使用していませんか?

つまり、Proc.new 呼び出しをインライン化する手段としてアンパサンド記号を読み取ります。その時点で、動作は最初のコード スニペットとまったく同じになります。

免責事項: 私は言語 (ruby 1.9.2) を学習したばかりなので、参照と詳細な概要を高く評価します。

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

ruby - proc に self を適用するメソッド

Objectブロックを受け取り、レシーバーをブロックに適用するメソッドを定義したいと考えています。実装は次のようになります。

これを行うための標準的な方法や、同様の使用方法を持つよく知られたライブラリは既にありますか? もしそうなら、私は車輪を再発明したくありませんでした.

オプションのブロックを受け取るメソッドがあり、ブロックがない場合return_valueはメソッド内で計算されたものを返したいのですが、ブロックがある場合はの戻り値を返したいということがよくあります。ブロックにreturn_value適用されます。今のところ、次のような行がたくさんあります。

しかし、私は一貫して書きたい

またはさらに良いことに、 の定義をわずかに変更するとapply

0 投票する
4 に答える
138 参照

ruby - ruby 1.9でprocを===で呼び出すことができるのはなぜですか?

この記事では、ruby 1.9でprocを呼び出す4つの方法について説明し、===はそのうちの1つです。なぜこれがこのように行われるのか、私にはまったくわかりません。===の通常の意味(2つのオブジェクトが同じオブジェクトであるかどうかを尋ねる)と何らかの関係がありますか?

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

ruby - メソッドの代わりにprocを使用するのはなぜですか?

私はプログラミングに不慣れであり、ルビーはそれでの私の最初の実際の実行です。ブロックを取得しますが、procは軽いメソッド/関数の概念のように見えます-なぜそれらを使用するのですか?なぜメソッドを使用しないのですか?

ご協力いただきありがとうございます。