【发布时间】:2019-03-26 00:17:26
【问题描述】:
如果我省略分号,此代码将无法编译。
def checkRadioButton(xml: DslBuilder): String => XmlTree = {
val inputs = top(xml).\\*(hasLocalNameX("input"));
{ (buttonValue: String) =>
// code omitted
}
}
我的猜测是,没有分号,scalac 认为偏函数是\\* 方法的另一个参数,而不是返回值。 (它实际上不是一个偏函数,顺便说一下,它是一个全函数。)
这里可以不用分号吗?在 Scala 中,我从来没有在行尾使用分号。
【问题讨论】:
-
什么是编译错误?只是出于好奇:
\\*方法是否采用任何第二个或隐式参数? -
您是否尝试过使用
locally { ... }来分隔val行和块? -
编译错误是
scales.xml.XPath[List[scales.utils.Path[scales.xml.XmlItem,scales.xml.Elem,[T]scales.utils.ImmutableArrayProxy[T]]]] does not take parameters,不,它不需要任何第二个或隐式参数。有一些重载方法具有相同的名称,但它们也没有。 -
@Beryllium 也无法编译。
-
@Robin Green 您是否尝试将块的结果分配给
val并返回那个?
标签: scala