型の階層構造 object Main { def main(args: Array[String]): Unit = { // すべての型は 4 つに大別できます (Null型, Nothing型を除く) // Any <- AnyVal <- Unit,プリミティブ <- Nothing // Any <- AnyRef <- String,その他のクラス <- Null <- Nothing val i: Int = 123 // プリミティブ型 val void: Unit = () // Unit型 (値はある) val str: String = "string" // 文字列 val obj: List[Int] = List(1,2,3) // その他のクラス (Option型なども含む) // すべての型は Any を継承 println(i.isInstanceOf[An