3
A
答えて
5
はい。あなたの混乱の出番
scala> val x = 33
x: Int = 33
scala> val xml = <foo> { x } </foo>
xml: scala.xml.Elem = <foo> 33 </foo>
scala> xml match { case <foo> { x } </foo> => 42 }
res0: Int = 42
私が思うに、それは<foo> 33 </foo>
scala> <foo> 33 </foo> match { case <foo> { x } </foo> => 42 }
scala.MatchError: <foo> 33 </foo> (of class scala.xml.Elem)
に対して一致していないで、あなたが{}
を使用する場合、Scalaは{}
の前後にスペースのための余分な要素を挿入するためですあなたは3つの要素を取得します.1つではありません。あなたは(パターンマッチングのために使用されるものである)unapplySeq
を呼び出すことで、これを見ることができます:
scala> scala.xml.Elem.unapplySeq(<foo> 33 </foo>)
res4: Option[(String, String, scala.xml.MetaData, scala.xml.NamespaceBinding, Seq[scala.xml.Node])] =
Some((null,foo,,,ArrayBuffer(33)))
scala> scala.xml.Elem.unapplySeq(<foo> { x } </foo>)
res5: Option[(String, String, scala.xml.MetaData, scala.xml.NamespaceBinding, Seq[scala.xml.Node])] =
Some((null,foo,,,ArrayBuffer(, 33, )))
お知らせを第二の例では、次の3つのArrayBufferの要素、および最初で唯一の1を取得しています。したがって、パターンが正しく一致しません。
関連する問題
- 1. awkの空白を含むパターンを検索するには?
- 2. 空白を含むMFMessageComposeViewController
- 3. 空白を含むファイル名
- 4. 空白を含むJSONパラメータ
- 5. PHP - 空白を含むstrpos
- 6. エクセルを空白のセルを含むXMLスプレッドシートにエクスポート
- 7. 空白を含む複数のコンテキストフィルタ
- 8. 空白のセルを含む文字列
- 9. ファイル名に空白を含むカールアップロード
- 10. XMLConfigurationで空白を含むaddProperty
- 11. 空白セルを含む平均
- 12. bashの空白を含むコールバックスクリプト
- 13. 空白を含むURL rest apiパラメータ
- 14. フォルダパスに空白を含むバッチスクリプト
- 15. jade.jsテンプレートに空白を含むクラス
- 16. XML非空白の空白
- 17. 空のXMLデータを含むJScriptランタイムエラー
- 18. 名前空間に空白を含むファイルを削除する
- 19. Rubyは、空白を含むファイルから空白行を削除します。
- 20. CsvHelper - 空白を含むヘッダーを書き込む
- 21. Djangoの空白のURLパターン
- 22. 空白XMLがCucumber.Options
- 23. R:ベクトルとスカラーを含むマージリスト
- 24. パターン内の空白を置換する
- 25. 空白を含むファイル名の名前を変更する
- 26. TeamCity - 空白を含むパラメータ値をコマンドラインに渡す
- 27. パスに空白を含むC#内のWord文書を開く
- 28. シェル変数で空白を含むパラメータを渡す
- 29. パス内のファイルをループする(空白を含む)
- 30. .vimrcに空白を含むnoremapを追加するには?
正直、ありがとう! Elem.unapplySeqについて知っておくととても便利です。 –