我刚刚开始使用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字符串类已使用"should"方法扩展,或者是否在此处发生了其他事情?我快速浏览了Scala文档,但无法查看此代码示例使用的语言功能.
它看起来像是向我添加到String类的隐式方法.这篇文章有一个演示.