ScalaでパラメーターとしてXMLリテラルを記述する

scala xml
ScalaでパラメーターとしてXMLリテラルを記述する

変数を複数値のパラメーターとして渡すことができます。

scala>
res26: scala.xml.Elem =

scala> Elem(null,"a",Null,TopScope,res26)
res27: scala.xml.Elem =

ただし、XMLリテラルを複数値パラメーターとして渡すことはできません。

scala> Elem(null,"a",Null,TopScope,)
:12: error: not found: value <
Elem(null,"a",Null,TopScope,)

しかし、XMLリテラルを単純なパラメーターとして渡すことができます

scala> def bar(s:String,n:Elem) = s+n.toString
bar: (s: String, n: scala.xml.Elem)java.lang.String
scala> bar("super ", )
res30: java.lang.String = super

?

ありがとう

  6  2


ベストアンサー

XML要素の前にスペースを追加すると機能します:

scala> Elem(null, "a", Null, TopScope, )
resN: scala.xml.Elem =

Scala Language Specificationのセクション1.5から:

_
XMLフラグメントをリテラルに含めることができるように、次の状況で開き山かっこ「<」に遭遇すると、字句解析はScalaモードからXMLモードに切り替わります。「<」の前に空白、開き括弧、または開きが必要です中かっこと、直後にXML名を開始する文字が続く
_

8


タイトルとURLをコピーしました