我正在使用不同的函数构建XML,例如以下示例:
<xml>
{ maybeXml(param) }
</xml>
尝试根据param的值返回Empty或Non-empty NodeSeq,如:
def maybeXml(param: Boolean): NodeSeq = {
if(param) <someXml></someXml>
else ??? //Empty or None doesn't work
}
我现在使用的解决方案是将函数类型定义为Option [NodeSeq],然后将其用作maybeXml.getOrElse(“”),但这对我来说没那么有意义。我目前的用法如下:
<xml>
{ maybeXml(param).getOrElse("") }
</xml>
def maybeXml(param: Boolean): NodeSeq = {
if(param) Some(<someXml></someXml>)
else None
}
使用空NodeSeq直接表达这个是更好的方法吗?
答案 0 :(得分:3)
对于空NodeSeq
使用NodeSeq.Empty
def maybeXml(param: Boolean): NodeSeq = {
if(param) <someXml></someXml>
else NodeSeq.Empty
}