はこれを想像:Scalaのすべての特性を適用すると、実行時にどのような影響がありますか?
val myObject = if(someCondition) {
new Whatever with Trait1
} else if(otherCondition) {
new Whatever with Trait2 with Trait3 with Trait4
} else {
new Whatever with Trait5
}
は、実行時に、「構成」myObject
オブジェクトである、またはコンパイル時に適切なコードを生成するのに十分なスマートScalaのコンパイラですか?上記のコードのような特性を適用する複数の場所がある場合、コードにどのようなパフォーマンスの影響がありますか?
追加情報:SI(Single Inheritance)Javaワールドで生活するために支払う代金です。SIメソッド解決順序(MRO)を調整する方法がないため、特性を*で焼く必要があります。 (これはSqueak STの特性と似ていますが、実際にMROを変更するRubyの特性とは大きく異なります)。これはまた、形質を使用してモジュールを再コンパイルせずに形質を変更すると、いくらか面白い状況につながる可能性があることを意味します...再び、通常のクラスについても同じことを論じることができます。 –