Scalaプログラミングのはまりポイントとして頻出頻度が高く影響も甚大なのは、==メソッドとcontainsメソッドの型チェックだと思います。 この2つのメソッドは(多分Javaとの互換性の問題で)、引数に定義されている型がAnyであるため事実上型チェックが効かない仕様になっています。 具体的には以下のような処理がコンパイルエラーにならず通ってしまうという問題です。 scala> "1" == 1 "1" == 1 res112: Boolean = false scala> List(1, 2, 3).contains("1") List(1, 2, 3).contains("1") res113: Boolean = falseいずれの場合も、常に判定結果はfalseになり、意図した処理でないことは明らかですがScalaコンパイラはエラーとして弾いてくれません。 Scalaは型チェック