Pergunta

Eu estou apenas começando com Scala, e eu estou querendo saber qual recurso de linguagem permite que você faça o seguinte:

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

Isso é do testes de unidade para Kestrel .

O que está acontecendo aqui? Faz "PersistentQueue" should significa que a classe string Scala foi estendido com um método de "deveria", ou é outra coisa acontecendo aqui? Eu tinha um olhar rápido através da documentação Scala mas não podia ver que recursos de linguagem estão sendo usados ??para este exemplo de código.

Foi útil?

Solução

Parece que métodos implícitos de serem adicionados à classe String para mim. Este post tem uma demonstração.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top