2

SOコミュニティ、

メソッドに渡されたときにPerlモジュールのメソッドでオートコンプリート/コンテンツアシストを一貫して機能させる方法に関するベストプラクティスのコーディング標準はありますか?例えば:

sub main {
   my $moduleObject = MyNameSpace::ModuleObject->new();
   processModuleObject($moduleObject);
}

sub processModuleObject {
  my $moduleObject = shift;
  $moduleObject->...    <- that is were I want context assist/auto-completion to work

}

それを機能させるための最善の回避策は、私が満足していない次のことでした:

sub main {
   my $moduleObject = MyNameSpace::ModuleObject->new();
   processModuleObject($moduleObject);
}

sub processModuleObject {

  my $moduleObject = MyNameSpace::ModuleObject->new();
  $moduleObject = shift;
  $moduleObject->runLogic();

} 

知っておくべきコーディングのベストプラクティスはありますか?

/トーマス

4

1 に答える 1

0

processModuleObject メソッドには何でも渡すことができます。Perl には厳密に型指定された引数やメソッド シグネチャはなく、少なくともそれを強制するメカニズムはありません。

EPIC IDE は、メソッドの引数の型をどのように把握できるのでしょうか? 知らない。

それでも、Moose とオプションのアドオン モジュール MooseX::Declare を使用できるので、次のように記述できます。

method processModuleObject (MyNameSpace::ModuleObject $myobj) { ... }

しかし、EPIC は Moose の構文とメソッド宣言を認識しません。したがって、Eclipse の「アウトライン ビュー」が失われます。ただし、パラメーターが渡された場所でのタイプの不一致エラーを示す、詳細な実行時エラーが発生する程度です。

私見ですが、誰かが EPIC をこのように拡張して「Moose-aware」にするのは素晴らしいことです。

于 2011-09-18T14:38:26.503 に答える