poligono - Scala: ¿Cuál es la diferencia entre el tamaño y la longitud de una Seq?
r grafica (4)
En una secuencia son iguales, como han dicho otros. Sin embargo, para información, esto es lo que IntelliJ advierte en un scala.Array
:
Reemplace .size con .length en matrices y cadenas
Información de inspección: esta inspección informa sobre las llamadas a array.size y string.size. Si bien tales llamadas son legítimas, requieren una conversión implícita adicional a SeqLike para ser realizadas. Un caso de uso común sería la longitud de llamada en arreglos y cadenas que pueden proporcionar ventajas significativas.
¿Cuál es la diferencia entre el tamaño y la longitud de una Seq? ¿Cuándo usar uno y cuándo el otro?
scala> var a :Seq[String] = Seq("one", "two")
a: Seq[String] = List(one, two)
scala> a.size
res6: Int = 2
scala> a.length
res7: Int = 2
¿Es lo mismo?
Gracias
Nada, una delegada a la otra. Ver el rasgo SeqLike.
/** The size of this $coll, equivalent to `length`.
*
* $willNotTerminateInf
*/
override def size = length
Nada. En el documento Seq , en el método de tamaño se indica claramente: "El tamaño de esta secuencia, equivalente a la length
".
size
se define en GenTraversableOnce
, mientras que la length
se define en GenSeqLike
, por lo que la length
solo existe para Seq
s, mientras que el size
existe para todos los Traversable
s. Sin embargo, como ya se señaló, para el size
Seq
s, el size
simplemente se delega a la length
(lo que probablemente significa que, después de ingresar, obtendrá un bytecode idéntico).