問題タブ [moo]
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.
perl - Perl クラス内の属性の変更を監視する
class 内の変数の変更にウォッチャーをどのように設定するのか、コード例を提供できますか? さまざまな機能 ( Scalar::Watcher、Moo のトリガー属性) と OOP フレームワーク (Moo、Mojo::Base)を使用していくつかの方法で実行しようとしましたが、すべて失敗しました。
以下は、私のタスクをよりよく理解するための失敗したコードです。この例では、attr1 が変更されるたびに attr2 を更新する必要があります。
Mojo::Base と Scalar::Watcher の使用:
Moo とトリガーの使用:
どんな提案でも大歓迎です。
perl - Perl with Moo: メソッドのスーパークラスの実装を呼び出す方法は?
X
サブクラスを持つクラスがありY
ます。 いくつかの追加の動作でオーバーライドしたいX
メソッド、失敗した場合に呼び出すステートメントがあります。Python では、これは次のように実行されます。calculate()
Y
if
X.calculate()
Moo
モジュールを使用してPerlでこれを行うにはどうすればよいですか?
perl - 役割とコードの読みやすさ
ロールの使用の改善 (Moo::Role または Role::Tiny など)
mixinクラスから関数を明示的にインポートするだけではありません
多数あり、柔軟性が向上し、簿記が少なくなり (特に、インポートされるメソッドが多数ある場合)、既存のメソッドを上書きしないことが含まれます。
しかし、大きな欠点は、コードを読んでいるときに の言及に出くわしsome_roles_method()
、関数を読みたい場合、どこに行けばよいかすぐにはわからないことです。わかるのは、このファイルで定義されていないということだけです。
それを処理するための良い戦略はありますか?気になるのは私だけですか?
perl - オブジェクトの構築中にトリガーを実行しない方法
私はこのコードを持っています:
戻り値:
これは、Moo の Triggers のデフォルトの文書化された動作です。
属性がコンストラクターを介して設定されている場合、トリガーの実行を無効にするにはどうすればよいですか?
もちろん、私はこのようにすることができます:
そして得る:
それでうまくいきますが...それは間違っていると感じます;)。