パターンマッチング `@` シンボル
2023-10-05 21:30:07
質問
このような場合
Person
というケースクラスがあります。
scala> case class Person(name: String, age: Int) {}
defined class Person
... そしてこのインスタンス
scala> val b = Person("Kevin", 100)
b: Person = Person(Kevin,100)
このコードを好む理由はあるのでしょうか?
@
)
scala> b match {
| case p @ Person(_, age) => println("age")
| case _ => println("none")
| }
age
...以下は?
scala> b match {
| case Person(_, age) => println("age")
| case _ => println("none")
| }
age
の意味や力を見逃しているのかもしれません。
@
?
どのように解決するのですか?
を含むだけです。
@
を含むだけです。したがって
that match{
case p @ Person(_, age) if p != bill => age
case Person(_, age) => age - 15
case _ => println("Not a person")
}
そうでなければ、それを含めることに実質的な意味はない。
関連
-
[解決済み] unix/linuxのシェルでパターンマッチをするときに、逆ワイルドカードやネガティブワイルドカードを使うにはどうしたらいいですか?
-
[解決済み] Scalaのパターンマッチングシステムで比較演算子を使う
-
[解決済み] Scalaのパターンマッチはなぜ変数で機能しないのですか?
-
[解決済み] HDFSではなく、ローカルファイルをsc.textFileで読み込む方法
-
[解決済み] ジッパーがコモナドである理由を理解する
-
[解決済み] Scalaでmapを使用してインデックスを受け取るにはどうしたらいいですか?
-
[解決済み] Apache SparkでDataframeのカラム値をListとして抽出する。
-
[解決済み] Scalaのtraitでvalとdefの使い分けは?
-
[解決済み] 関数型プログラミング(特にScalaとScala API)におけるreduceとfoldLeft/foldの違いとは?
-
[解決済み] Scalaのコレクションにenrich-my-libraryパターンを適用するにはどうしたらいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Scalaの配列の初期化
-
[解決済み] scalaは推論される型の「許容される複雑さ」にどのような制限を設けているのでしょうか?
-
[解決済み] 単純な case class の順序を定義する簡単な慣用的方法
-
[解決済み] Scalaでサブアレイを取得する正しい方法は何ですか?
-
[解決済み] SBTのrunアクションでアプリケーションを実行するために、JVMの最大ヒープサイズを"-Xmx "で指定する方法は?
-
[解決済み] 同じ要素をn回含むリストを作るには?
-
[解決済み] scala.concurrent.Promiseのユースケースは何ですか?
-
[解決済み] パッケージオブジェクト
-
[解決済み] Scalaの複数型パターンマッチ
-
[解決済み] Scalaの代入が、代入された値ではなく、Unitで評価される動機は何ですか?