53ningen.com

@gomi_ningen's Website

Scalaの経路依存型(path-dependent type)とは?

Functional Programming in Scala の Wiki を翻訳している中で path-dependent types という単語が出てきてよくわからなかったので調べました。 調べたら hishidama さんのページが出てきてくれたので良かった(?)です。 詳細はそちらを参照していただければという感じなんですが、以下一応自分なりに噛み砕いてまとめてみました。

経路依存型(path-dependent types)

普通に Java で内部クラスを定義したとすると、以下のような感じになると思います。Scala でも同様に書けると思います。

class A {
    class B {
    }
}

さてここから先、内部クラスのインスタンスを生成したときの挙動が Java と Scala で変わるそうです。 まずは Java の例を見てみましょう。

Java では class A の異なるインスタンス a1, a2 を用いて、それぞれの内部クラス B のインスタンスを生成したとしても、それらは同じ型です。 つまり以下のような...

Read More

Copyright © 53ningen.com