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 の単体テストからのものです。

何が起きてる?Scala 文字列クラスが "should" メソッドで拡張されたということですか"PersistentQueue" should、それともここで何か他のことが起こっているのでしょうか? Scala のドキュメントをざっと見ましたが、このコード サンプルでどの言語機能が使用されているかわかりませんでした。

4

1 に答える 1

6

String クラスに暗黙的なメソッドが追加されているように見えます。この投稿にはデモンストレーションがあります。

于 2009-02-26T11:08:19.790 に答える