7

我刚刚开始使用 Scala,我想知道哪种语言功能允许您这样做:

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

这是来自Kestrel 的单元测试

这里发生了什么?是否"PersistentQueue" should意味着 Scala 字符串类已经使用“应该”方法进行了扩展,或者这里发生了其他事情?我快速浏览了 Scala 文档,但看不到此代码示例使用了哪些语言功能。

4

1 回答 1

6

在我看来,隐式方法似乎被添加到 String 类中。这篇文章有一个演示。

于 2009-02-26T11:08:19.790 回答