2012-03-19 12 views
13

anahtarını (ve değer) elde en aşağıdaki değişmez Harita düşünelim:Scala: Bir Map.head elemanı

val foo = Map((10,"ten"), (100,"one hundred")) 

İlk elemanın anahtarını almak istiyorum. İlk elemanı alır

foo.head. Ama sonra ne var?

Ben de endeksini ve değer elde etmek için _1 ve _2 kullanabilmesi

+8

'Map's sıralanır. Yani 'ilk' her zaman sizin düşündüğünüz değil. Sadece aklınızda bulundurun :-) – leedm777

+0

Teşekkürler dave, ben yapacağım :) – Blackbird

cevap

23

anahtar/değer çifti Set:
val (key, value) = foo.head

+0

İlk 2 (anahtar, değer) çiftini veya yalnızca ilkini değil, ilk 3'ü almanın bir yolu var mı. – Ajay

17

Map.head, bir demet döndüren bu öğesinin değerini, yani "on" istiyorum.

scala> val foo = Map((10,"ten"), (100,"one hundred")) 
foo: scala.collection.immutable.Map[Int,java.lang.String] = Map(10 -> ten, 100 - 
> one hundred) 

scala> val hd=foo.head 
hd: (Int, java.lang.String) = (10,ten) 

scala> hd._1 
res0: Int = 10 

scala> hd._2 
res1: java.lang.String = ten 
+0

Detaylı cevap için teşekkürler. IODEV'in çözümü çok güzel görünüyor. – Blackbird