Domanda

Sono appena iniziato con Scala, e mi chiedo quale caratteristica del linguaggio permette di fare questo:

"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"
    }
  }
}

Questo è dal test unitari per Kestrel .

Che cosa sta succedendo qui? Significa "PersistentQueue" should che la classe stringa di Scala è stata ampliata con un metodo "dovrebbe", o è qualcos'altro succedendo qui? Ho avuto un rapido sguardo attraverso la documentazione Scala, ma non riuscivo a vedere quali caratteristiche del linguaggio vengono utilizzati per questo esempio di codice.

È stato utile?

Soluzione

Sembra che i metodi impliciti che viene aggiunto alla classe String per me. Questo post ha una dimostrazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top