0

どのインスタンスが現在のオブジェクトであるかを確認する方法。コレクションかどうかを具体的に確認してください。

val maps = Map("s" -> 2, "zz" -> 23, "Hello" -> "World", "4" -> Map(11 -> "World"), "23333" -> true);

for(element <- maps) {
    if(element.isInstanceOf[Map]) { // error here
         print("this is a collection instance ");
    } 
    println(element);
}
4

2 に答える 2

0

検出したい場合Map

for(element <- maps) {
    if(element.isInstanceOf[Map[_, _]]) {
         print("this is a collection instance ")
    } 
    println(element)
}

しかし、タプルの 2 番目の要素ではなく、タプル全体 ("s" -> 2 など) をチェックするため、これは機能しませんでした。

for(element <- maps) {
    if(element._2.isInstanceOf[Map[_, _]]) {
         print("this is a collection instance ")
    }
    println(element._2)
}

またはパターン マッチングを使用する場合:

for((_, v) <- maps) {
    if(v.isInstanceOf[Map[_, _]]) {
         print("this is a collection instance ")
    }
    println(v)
}

または、さらに多くのパターン マッチングを使用します。

maps foreach {
    case (_, v: Map[_, _]) => println("this is a collection instance " + v)
    case (_, v)            => println(v)
}
于 2013-07-29T11:16:47.087 に答える