誰かがこのコードを理解するのを手伝ってくれますか
case "Foo" Foo(data) -> _ => { /*.. implementation */}
Foo.unapply(data) の使用法が表示されますが、この部分が何なのかわかりません
-> _
いつ、どのように使用するか
誰かがこのコードを理解するのを手伝ってくれますか
case "Foo" Foo(data) -> _ => { /*.. implementation */}
Foo.unapply(data) の使用法が表示されますが、この部分が何なのかわかりません
-> _
いつ、どのように使用するか
誰かが自分の利益のために賢すぎるようです。次のものがあるとします。
case class Foo[A](command: String, data: A)
object -> { def unapply[A, B](p: (A, B)) = Some(p) }
今、私はこれを書くことができます:
scala> Foo("foo", (42, 'whatever)) match {
| case "foo" Foo(data) -> _ => data
| }
res0: Int = 42
Scala の中置パターンの魔法のおかげで、これは次と同等です。
Foo("foo", (42, 'whatever)) match {
case Foo("foo", data -> _) => data
}
中置バージョンがコードの将来の読者を混乱させ、困らせることが保証されていることを除いて。