我可以将变量作为多值参数传递:
scala> <b/>
res26: scala.xml.Elem = <b></b>
scala> Elem(null,"a",Null,TopScope,res26)
res27: scala.xml.Elem = <a><b></b></a>
Run Code Online (Sandbox Code Playgroud)
但我无法将XML文本作为多值参数传递:
scala> Elem(null,"a",Null,TopScope,<b/>)
<console>:12: error: not found: value <
Elem(null,"a",Null,TopScope,<b/>)
Run Code Online (Sandbox Code Playgroud)
但我可以将XML文本作为简单参数传递
scala> def bar(s:String,n:Elem) = s+n.toString
bar: (s: String, n: scala.xml.Elem)java.lang.String
scala> bar("super ", <a/>)
res30: java.lang.String = super <a></a>
Run Code Online (Sandbox Code Playgroud)
?
谢谢
在XML元素之前添加空格使其工作:
scala> Elem(null, "a", Null, TopScope, <b/>)
resN: scala.xml.Elem = <a><b></b></a>
Run Code Online (Sandbox Code Playgroud)
从Scala语言规范,第1.5节:
为了允许文字包含XML片段,在下列情况下遇到开放角括号"<"时,词法分析从Scala模式切换到XML模式:'<'必须在空格,左括号或开头之前大括号后面紧跟一个开始XML名称的字符
| 归档时间: |
|
| 查看次数: |
258 次 |
| 最近记录: |