Pertanyaan Bagaimana cara mengulang peta scala?


Saya memiliki peta scala:

attrs: Map[String , String]

Ketika saya mencoba untuk mengulangi peta seperti;

attrs.foreach { key, value =>     }

hal di atas tidak berfungsi. Dalam setiap iterasi saya harus tahu apa kuncinya dan apa nilainya. Apa cara yang tepat untuk melakukan iterasi di atas peta scala menggunakan scala syntactic sugar?


75
2018-06-15 21:13


asal


Jawaban:


foreach metode yang diterima Tuple2[String, String] sebagai argumen, bukan 2 argumen. Jadi Anda bisa menggunakannya seperti tuple:

attrs.foreach {keyVal => println(keyVal._1 + "=" + keyVal._2)}

atau Anda dapat membuat pencocokan pola:

attrs.foreach {case(key, value) => ...}

70
2018-06-15 21:19



Tiga opsi:

attrs.foreach( kv => ... )          // kv._1 is the key, kv._2 is the value
attrs.foreach{ case (k,v) => ... }  // k is the key, v is the value
for ((k,v) <- attrs) { ... }        // k is the key, v is the value

Triknya adalah iterasi memberi Anda pasangan nilai kunci, yang tidak dapat dipisah menjadi nama kunci dan nilai pengenal tanpa menggunakan case atau for.


138
2018-06-15 21:17