8

次のコード:

trait T {
    function foo() {}
}

class C {
    use T { T::foo as bar; }
    use T { T::foo as baz; }
}

次のエラーが発生します。

Cで他の特性メソッドとの衝突があるため、特性メソッドバーは適用されていません。

クラスでトレイトを2回使用することは可能ですか?

4

2 に答える 2

7

トレイトで異なる名前で複数回定義されたメソッドを「インポート」するには、次のようにします。

class C {
  use T {
    foo as bar;
    foo as baz;
  }
}
于 2012-11-27T10:29:34.157 に答える
0

はい、トレイトを2回使用できます。

trait T {
    function foo() {}
}

class C {
    use T { T::foo as bar; T::foo as baz; }
}
于 2012-11-27T11:10:56.640 に答える