次のコードスニペットがどのように機能するかを正確に理解しようとしています。特に2Seq(JsString(bar), _*)
行目と3行目ではmust_
、構文がわかりにくいです。
val foo = (Json.parse(contentAsString(result)
val Seq(JsString(bar), _*) = (foo \\ "bar")
bar must_== "crazy"
次のコードスニペットがどのように機能するかを正確に理解しようとしています。特に2Seq(JsString(bar), _*)
行目と3行目ではmust_
、構文がわかりにくいです。
val foo = (Json.parse(contentAsString(result)
val Seq(JsString(bar), _*) = (foo \\ "bar")
bar must_== "crazy"
2行目はパターンマッチですが、val
構文を使用しています。 foo \\ "bar"
を返しますSeq
。これは一致させることができます。
Seq(JsString(bar), _*)
つまり、アイテムはaSeq
と一致する必要があり、最初のアイテムは、JsString
そのコンテンツを呼び出すaである必要がありbar
、残りは気にしません(_*
)。通常、次のように表示されます。
(foo \\ "bar") match {
case Seq(JsString(bar), _*) => // do something with bar
...
}
val
しかし、この方法でもsを初期化できることがわかりました。
また、must_==
一部のテストフレームワークのメソッド名(メソッドは英数字の後にアンダースコアの後に記号を付けることができます)です。どちらか忘れました。しかし、ほぼ確実に、メソッドが何であれ、テストされたもの、テストされたものへの暗黙の変換がありmust_==
ます。