by shigemk2

当面は技術的なことしか書かない

大学に入学してから10年が経ってた

1年と10年の〆として。

Predef

開発者の便宜のために、Scalaコンパイラはコンパイル時に自動的にjava.langパッケージの定義をインポート

その1 java.lang

コンパイラにより、Predefオブジェクトも自動的にインポートされます。このオブジェクトにはいくつかの便利な型、オブジェクト、関数が定義、もしくはインポート

その2 Predef

Javaにおけるjava.lang.のような完全限定名による接頭辞も必要ありません。同様に、Listのような一般的なScala固有の型の多くも完全限定名なしで使えます。StringのようにJavaとScalaの型の名前が重なる場合は、Scalaバージョンの型が最後にインポートされるため、Scalaの型が「勝ち」ます

ので、意図的にJavaをimportしないといけないってことか。

Programming Scala: Scalability = Functional Programming + Objects

Programming Scala: Scalability = Functional Programming + Objects

sealed memo

sealedを使うことには1つだけ欠点があります。同じファイルに継承階層のすべてを宣言しているため、継承階層にクラスを追加したり削除するたびに、そのファイルを変更しなければなりません。これはオープン・クローズドの原則([Meyer1997][Martin2003])を破ります。

Programming Scala: Scalability = Functional Programming + Objects

Programming Scala: Scalability = Functional Programming + Objects

開放/閉鎖原則 - Wikipedia