¿Por qué paréntesis?
Aquí está la cita del libro programming in scala.
Otra idea importante ilustrada por este ejemplo le dará una idea de por qué se accede a las matrices con paréntesis en Scala. Scala tiene menos casos especiales que Java. Las matrices son simplemente instancias de clases como cualquier otra clase en Scala. Cuando aplica paréntesis que rodean uno o más valores a una variable, Scala transformará el código en una invocación de un método llamado aplicar en esa variable. Así que greetStrings (i) se transforma en greetStrings.apply (i). Por lo tanto, acceder a un elemento de una matriz en Scala es simplemente una llamada a método como cualquier otra. Este principio no está restringido a las matrices: cualquier aplicación de un objeto a algunos argumentos entre paréntesis se transformará en una llamada al método apply. Por supuesto, esto compilará solo si ese tipo de objeto realmente define un método de aplicación. Entonces no es un caso especial; es una regla general
Aquí hay algunos ejemplos de cómo tirar de cierto elemento (primer elemento en este caso) utilizando el estilo de programación funcional.
// Create a multdimension Array
scala> val a = Array.ofDim[String](2, 3)
a: Array[Array[String]] = Array(Array(null, null, null), Array(null, null, null))
scala> a(0) = Array("1","2","3")
scala> a(1) = Array("4", "5", "6")
scala> a
Array[Array[String]] = Array(Array(1, 2, 3), Array(4, 5, 6))
// 1. paratheses
scala> a.map(_(0))
Array[String] = Array(1, 4)
// 2. apply
scala> a.map(_.apply(0))
Array[String] = Array(1, 4)
// 3. function literal
scala> a.map(a => a(0))
Array[String] = Array(1, 4)
// 4. lift
scala> a.map(_.lift(0))
Array[Option[String]] = Array(Some(1), Some(4))
// 5. head or last
scala> a.map(_.head)
Array[String] = Array(1, 4)
Pues bien, parece que ** ** data.head trabajado ... Pero aún así que sólo me da primer elemento, no cualquiera en la lista. – drozzy
Use ** Seq ** traits ** apply (index) ** si está seguro de que el índice no está fuera de los límites. _http: //www.scala-lang.org/api/current/? _ga = 1.201071334.935145902.1460491527 # scala.collection.Seq_ – Beezer
data.drop (i) .head funciona para acceder al i-ésimo elemento – Vinay