1. ホーム
  2. scala

[解決済み] Scala @ 演算子

2022-05-17 19:14:26

質問

Scalaの@演算子は何をするのですか?

例えば、ブログの記事で Scalaでの形式言語処理、その2 のようなものがあります.

case x @ Some(Nil) => x

どのように解決するのですか?

マッチしたパターンを変数に束縛することができるようになります。例えば次のようなことを考えてみましょう。

val o: Option[Int] = Some(2)

簡単に内容を抽出することができます。

o match {
  case Some(x) => println(x)
  case None =>
}

しかし、もしあなたが コンテンツ Some のようなもので、オプションそのものではないでしょうか?それはこれで達成されるでしょう。

o match {
  case x @ Some(_) => println(x)
  case None =>
}

なお @ 任意の レベルで使用できます。