問題タブ [moops]

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 に答える
161 参照

perl - Dancer でオブジェクトをインスタンス化して、表示する値を返すことはできますか?

Dancer アプリ モジュールに次のコードがあります。

Dice.pm という名前の Moops クラスがあり、.pl ファイルでテストすると問題なく動作しますが、Web ブラウザからアクセスしようとすると、次のエラーが表示されます:オブジェクト メソッド "new" が見つかりませんパッケージ "Dice" 経由 (おそらく "Dice" をロードするのを忘れていませんか?) .

ダンサーでこれを行うことはできますか?

Dice.pm の関連コードは次のとおりです。

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

perl - Moops と Moose を使用する場合、属性アクセサーがロール要件を満たしていない

次のコード サンプルを検討してください。

属性アクセサが のロール要求を満たしていないように見えるため、「コンパイル」は失敗しますm1:

プレーンMooseを使用すると、Moose::Roleこれが機能します(ここに文書化されているように)。また、Mooseバックエンドを使用しないと動作しません。

私はすでにwithステートメントの順序を無駄に切り替えようとしました。属性をメソッド宣言に置き換えることで問題は解決しますが、属性要件を指定する方法が必要です。

これを機能させる方法はありますか?

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

perl - 関数/サブルーチンをサブクラスにインポートする

私は使用Moopsしていますが、次のようなものが機能することを望みます:

代わりに、次の結果が得られます。

Exporterinから継承し、次のようなAステートメントuseを使用することで、これを「修正」できます。B

Aこれは少し扱いに​​くいように見えますが、 が別のファイルで定義されている場合はさらに悪化します。次に、次のように外に2番目を追加する必要がありますuse Arequireしません) :B

(エクスポートされた) レキシカル インクルージョン関数をよりエレガントに動作させる方法はありますか?

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

perl - Moops の class_has

MoopsのようなものはありMooseX::ClassAttributeますか?

Mooバックエンドを持ち込みたくないので、バックエンドを使用して静的/クラス属性が必要であることに注意してくださいMoose

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

perl - Moops lexical_has とデフォルト値

Moopslexical_hasで属性がどのように機能するかを理解しようとしています。この機能はから来ており、私が理解しているように、この関数は、スカラー参照 (に保持されている) を使用して、「字句的に持つ」可能性のある属性への参照を生成できます。次に、CODE 参照を使用して、スコープを「強制」する方法でクラス属性にアクセスできます (それらは「裏返し」であるため??)。しかし、これは単なる私の推測と野生の推測であるため、より良い説明をいただければ幸いです。また、次の例でこのアプローチが機能しないように見える理由も知りたいです。Lexical::Accessorlexical_hasCODEclassaccessor =>

Moops イントロダクションの一部である例から作業して、次のものを作成していclass Carます。

次に、オブジェクトをインスタンス化し、そのメソッドを使用してその属性にアクセスしようとします。

カスタム アクセサーを使用する最後の行には困惑します。何も起こりません。クラスの属性または設定が不足していますか (熱心またはlazy => 0機能しないとマークされています)。関数が必要BUILDですか?私が見逃している初期化ステップはありますか?

: 次のようなセッター メソッドをクラスに追加すると、次のようになります。

そして、最後の一連のステートメントでそれを呼び出します。

メソッドはget_top_speed()適切に戻り始めます。これは期待されていますか?もしそうなら、クラス設定のデフォルトはどのように機能しますか?


これをバグとして報告しました: https://rt.cpan.org/Public/Bug/Display.html?id=101024

「perl 規則」を使用することで (つまりlexical_has、プライベート属性を使用せず、「 」を前に付けることで)これを簡単に回避でき_、この質問はバグから生じたものであるため、修正やパッチが回答として期待されていません。Lexical::Accessor報奨金について - がどのように機能するのかを説明しいただければ幸いです。アクセサーにプライベート内部スコープを「強制」する方法。そして、それが良いことである理由についてのCS理論かもしれません。

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

mocking - ジェネリック トレース モック クラス

moops を使用して便利なモック クラスを構築しようとしています。

これにより、次の結果が得られます。

したがって、問題は、ショートカットを使用するとcaller()常に返されるようです。maround m,l ..

クラスを次のように定義します。

動作しますが、もう少し冗長で書きにくいです。

Moops でこのようなことを達成するためのより良いオプションはありますか?