Pregunta

Me acaba de empezar con la Scala, y me pregunto qué característica de idioma le permite hacer esto:

"PersistentQueue" should {
  "add and remove one item" in {
    withTempFolder {
      val q = new PersistentQueue(folderName, "work", Config.fromMap(Map.empty))
      q.setup

      q.length mustEqual 0
      q.totalItems mustEqual 0
      q.bytes mustEqual 0
      q.journalSize mustEqual 0

      q.add("hello kitty".getBytes)

      q.length mustEqual 1
      q.totalItems mustEqual 1
      q.bytes mustEqual 11
      q.journalSize mustEqual 32

      new String(q.remove.get.data) mustEqual "hello kitty"

      q.length mustEqual 0
      q.totalItems mustEqual 1
      q.bytes mustEqual 0
      q.journalSize mustEqual 33

      q.close
      dumpJournal("work") mustEqual "add(11:0:hello kitty), remove"
    }
  }
}

Eso es desde el pruebas unitarias para Kestrel .

¿Qué está pasando aquí? ¿Quiere decir que la clase "PersistentQueue" should cadena Scala se ha ampliado con un método "debería", o es otra cosa que sucede aquí? Tenía una mirada rápida a través de la documentación Scala, pero no pude ver qué características del lenguaje están siendo utilizados para este ejemplo de código.

¿Fue útil?

Solución

Parece que los métodos implícitos que se agregan a la clase String para mí. Este post tiene una demostración.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top