2
構造タイピングの(不)利点
私はちょうどダニエル・シュピーワクによるこの講演を見ました。そこで彼は、Scalaのans Javaの名目上の型付けと比較した構造型付けの利点について話しています。この違いの1つの例は、次のJavaコードです public interface Foo { public int length(); } public interface Bar { public int length(); } Foo f = ...; Bar b = f; もちろんその間タイプの互換性ため、コンパイルされないだろうFooとは、Bar名前によって決定されます。 一方、構造型システムでは、両方の型が等しいか互換性があると宣言できるため、とりわけ、チェックされたアヒルの型付けが可能になります。 今、私は構造型システムの利点のほとんどを理解していると思いますが、次のような例から型安全性を無効にしないのではないかと思います class Foo { class Bar { /* ... */ } def takeBar(b: Bar) = { /* ... */ } def getBar: …