問題タブ [instance-eval]

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

ruby - Rubyはinstance_eval()で定義されたメソッドをどこに保存しますか

次に例を示します。

MyClass のインスタンス メソッドには「hello」メソッドが含まれていないため、私の質問は、Ruby が instance_eval() で定義されたメソッドをどこに格納するかです。

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

ruby - instance_evalはatt_accessorでは機能しませんか?

誰かが私に言うことができます、なぜそれが機能しないのですか?

私がしているのは何が悪いのですか?

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

ruby - class_evalとinstance_eval

class_eval方法とinstance_eval動作に違いはありますdefか?Insideclass_evalブロックdefは、それ自体をクラス化するメソッド(つまり、インスタンスメソッド)をinstance_eval def定義し、insideは、クラスの固有クラス(つまり、クラスメソッド)にメソッドを定義します。AFAIKの他のすべての機能は、どちらの場合も同じように機能します(たとえば、、、、define_method定数attr_accessorclass << self; end定義)。それは本当ですか?

答えはdefundefであり、とaliasのコンテキストが異なります。class_evalinstance_eval

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

ruby - 限定されたスコープの組み込みルビークラスにモンキーパッチを適用

私は内部RubyDSLに取り組んでおり、それをできるだけきれいに見せるために、Symbolクラスにモンキーパッチを適用し、いくつかの演算子を追加する必要があります。私はこれをどのように行うかについて責任を持ち、パッチの範囲と存続期間を特定のコードブロックに制限したいと思います。これを行うための標準的なパターンはありますか?これが私が考えていることを示すためのいくつかの擬似コードです:

終わり

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

ruby - Instance_eval ブロッ​​クが提供されていませんか?

このエラーの原因を知っている人はいますか? 基本的なラック アプリケーションを作成しようとしています。

App.rb =>

Config.ru =>

編集:どうやら、エラー woops を含めるのを忘れていたようです:

/local/www/cherry/lib/app.rb:12:in 'instance_eval': block not supplied (ArgumentError)

0 投票する
0 に答える
1061 参照

ruby - クラスインスタンス変数の attr_accessor の定義 - Ruby

クラス インスタンス変数のアクセサを作成しようとしています。attr_accessorクラスに含まれているモジュールからメソッドを呼び出しています。以下のコードを参照してください。

上記のコードは機能します。ただし、を呼び出すコードを次のように変更すると、次のattr_accessorようになります。

私は得るNoMethodError: undefined method `persistent_data='

両方の方法が同じように機能するべきではありませんか、それとも私の理解が間違っていますか? REE 1.8.7 を使用しています

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

ruby - instance_eval が特別な方法でダイレクト アクセサーを処理するのはなぜですか?

次のコードでエラーが発生しないのはなぜですか。

次の例では、予想どおり NameError が発生します。

これでもエラーが発生します。

1.8.7-p352 と 1.9.3-p194 でこれを試しましたが、同じ結果が得られました。

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

ruby - attr_accessorを持つクラスのRubyinstance_eval

との基本的な違いを理解していinstance_evalますclass_eval。遊んでいるときに私が発見したのは、何か奇妙なことattr_accessorです。次に例を示します。

どうですか:

  1. instance_evalは、アクセサでAクラス(オブジェクト)にアクセスしませんでした
  2. それから実際にそれをAのインスタンスに追加しましたか?
0 投票する
2 に答える
294 参照

ruby - メソッドを instance_eval に渡すには?

instance_evalこのクラスを呼び出したい:

このメソッドを渡すb

しかし、これは起こっています:

bブロックの場合は機能しますがb、メソッドとしては機能しません。どうすればそれを機能させることができますか?

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

ruby - module_eval / class_eval / instance_eval はどのように行番号を数えますか

に渡された line_number が見つかりましたがclass_eval、エラーによって報告された行番号と一致module_evalinstance_evalません。この動作は、次のように言うruby​​-docでは説明されていません : (instance_eval例として使用)

オプションの 2 番目と 3 番目のパラメーターは、コンパイル エラーを報告するときに使用されるファイル名と開始行番号を指定します。

これら 3 つのメソッドclass_evalはすべて、ファイル名を指定する 2 つの追加のパラメーターmodule_evalinstance_eval受け入れ、エラー メッセージのテキストを設定する lineno パラメーターを指定します。

この質問には、この動作の実用的なデモがあります。

ただし、行番号の計算は説明よりも複雑であることがわかりました。ここにデモがあります

上記のコードは、line_no渡されたパラメータがinstance_evalエラーによって報告された行番号ではなく、line_no.

このパラメーターの正確な動作について疑問に思っていますか?