He leído un código fuente del proyecto, se encuentran:

val sampleMBR = inputMBR.map(_._2).sample

inputMBR es una tupla.

la función map‘s definición :

map[U classTag](f:T=>U):RDD[U]

parece que map(_._2) es la abreviatura de map(x => (x._2)).

Alguien me puede decir las reglas de los taquigrafía ?

OriginalEl autor chenzhongpu | 2015-03-25

5 Comentarios

  1. 16

    _ Sintaxis puede ser un poco confuso. Cuando _ es utilizado en su propia representa un argumento en la función anónima. Así que si vamos a trabajar en parejas:
    map(_._2 + _._2) sería la abreviatura de map(x, y => x._2 + y._2). Cuando _ se utiliza como parte de un nombre de función (o el nombre de valor) no tiene ningún significado especial. En este caso x._2 devuelve el segundo elemento de una tupla (suponiendo que x es una tupla).

    OriginalEl autor Holden

  2. 11

    colección.mapa(_._2) emite un segundo componente de la tupla. Ejemplo de pura Scala (Chispa Ddr funcionan de la misma manera):

    scala> val zipped = (1 to 10).zip('a' to 'j')
    zipped: scala.collection.immutable.IndexedSeq[(Int, Char)] = Vector((1,a), (2,b), (3,c), (4,d), (5,e), (6,f), (7,g), (8,h), (9,i), (10,j))
    
    scala> val justLetters = zipped.map(_._2)
    justLetters: scala.collection.immutable.IndexedSeq[Char] = Vector(a, b, c, d, e, f, g, h, i, j)
    Esto está claro!!

    OriginalEl autor marekinfo

  3. 4

    Dos guiones bajos en ‘_._2‘ son diferentes.

    Primer ‘_‘ es para marcador de posición de la función anónima; Segundo ‘_2‘ es miembro de caso de la clase Tuple.

    Algo como:

    caso de la clase Tuple3 (_1: T1, _2: T2, _3: T3)
    {…}

    OriginalEl autor 卢声远 Shengyuan Lu

  4. 0

    He encontrado la solución.

    Primero el underscore aquí es como marcador de posición.

    Para hacer un literal de función aún más concisa, puede utilizar guiones bajos
    como marcadores de posición para uno o más parámetros, siempre y cuando cada parámetro
    aparece sólo una vez dentro de la función literal.

    Ver más sobre underscore en la Scala en ¿Cuáles son los usos de un carácter de subrayado en la Scala?.

    OriginalEl autor chenzhongpu

  5. 0

    El primer ‘_’ se refiere lo que está asignado y, dado que lo que se asigna a es una tupla puede llamar a cualquier función dentro de la tupla y uno de los método es ‘_2’ así que lo que a continuación nos dice transformar la entrada en su segundo atributo.

    OriginalEl autor Nihat Hosgur

Dejar respuesta

Please enter your comment!
Please enter your name here