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. 空白を含むファイル名
- 2. 空白を含むMFMessageComposeViewController
- 3. エクセルを空白のセルを含むXMLスプレッドシートにエクスポート
- 4. jade.jsテンプレートに空白を含むクラス
- 5. bashの空白を含むコールバックスクリプト
- 6. 空白を含む複数のコンテキストフィルタ
- 7. XMLConfigurationで空白を含むaddProperty
- 8. XML非空白の空白
- 9. 空のXMLデータを含むJScriptランタイムエラー
- 10. 名前空間に空白を含むファイルを削除する
- 11. ボーダーラインのみを表示するXlibを含む空白のウィンドウ
- 12. パスに空白を含むC#内のWord文書を開く
- 13. シェル変数で空白を含むパラメータを渡す
- 14. 空白を含むファイル名の名前を変更する
- 15. フォルダ名に空白を含むDLLを登録する
- 16. バッチファイル:関数に空白を含むパラメータを渡します。
- 17. TeamCity - 空白を含むパラメータ値をコマンドラインに渡す
- 18. ディレクトリに空白を含むファイル名を扱う
- 19. gdb:空白を含むファイルにブレークポイントを設定する方法
- 20. groovyは空白を含むパラメータで実行する
- 21. IE:カスタムフォントの文字を含む場合、ドロップダウンオプションは空白です
- 22. Objective-c:空白を含む文字列の長さ
- 23. 空白を含む正規表現の分割
- 24. 空白を含むパスの入力方法は?
- 25. 空白を含むチェックボックスとテキストビューの整列
- 26. Install4jコマンドラインコンパイラ-Dオプション(空白と引用符を含む)
- 27. Regex help、空白のない数字を含む単語
- 28. C++の空白を含むファイルからの読み込み
- 29. 名前に空白を含むバッチ抽出rars
- 30. Bashループのコマンドに空白を含むリスト
正直、ありがとう! Elem.unapplySeqについて知っておくととても便利です。 –