Frage

Ich bin nur mit Scala die ersten Schritte, und ich frage mich, welche Sprache Funktion ermöglicht es Ihnen, dies zu tun:

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

Das ist der Unit-Tests für Kestrel .

Was ist denn hier los? Bedeutet "PersistentQueue" should, dass die Scala String-Klasse hat mit einer „sollte“ Methode erweitert, oder geschieht hier etwas anderes? Ich hatte einen kurzen Blick durch die Dokumentation Scala aber nicht sehen kann, welche Sprache Features für dieses Codebeispiel verwendet werden.

War es hilfreich?

Lösung

Es sieht aus wie implizite Methoden der String-Klasse zu mir hinzugefügt werden. Dieser Beitrag eine Demonstration hat.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top