_ 必须遵循方法;不能跟随 () => 布尔值
_ must follow method; cannot follow () => Boolean
您好,我正在尝试 运行 我的代码,我仔细检查了所有内容。它应该可以工作,我的意思是 IDE 没有给出任何警告。但是在编译时出现此错误
Error:(20, 40) _ must follow method; cannot follow () => Boolean
properties += new Property(propName, formula _)
这里是导致这个错误的代码部分
def property(propName: String)(formula: () => Boolean) {
properties += new Property(propName, formula _)
}
这是属性class
class Property(val name: String, val func: () => Boolean)
我在这里遗漏了什么?
这里不需要下划线。仅当您想通过 eta 扩展将方法转换为函数时才需要下划线。这在这里不是必需的,因为 formula
已经是 () => Boolean
类型的函数,这正是 Property
class 正在寻找的。
def property(propName: String)(formula: () => Boolean) {
properties += new Property(propName, formula)
}
就像警告说的那样。 _
必须遵循一个方法才能把它变成一个函数。 formula
已经是一个函数。所以你可以像这样传递它:
properties += new Property(propName, formula)
您好,我正在尝试 运行 我的代码,我仔细检查了所有内容。它应该可以工作,我的意思是 IDE 没有给出任何警告。但是在编译时出现此错误
Error:(20, 40) _ must follow method; cannot follow () => Boolean
properties += new Property(propName, formula _)
这里是导致这个错误的代码部分
def property(propName: String)(formula: () => Boolean) {
properties += new Property(propName, formula _)
}
这是属性class
class Property(val name: String, val func: () => Boolean)
我在这里遗漏了什么?
这里不需要下划线。仅当您想通过 eta 扩展将方法转换为函数时才需要下划线。这在这里不是必需的,因为 formula
已经是 () => Boolean
类型的函数,这正是 Property
class 正在寻找的。
def property(propName: String)(formula: () => Boolean) {
properties += new Property(propName, formula)
}
就像警告说的那样。 _
必须遵循一个方法才能把它变成一个函数。 formula
已经是一个函数。所以你可以像这样传递它:
properties += new Property(propName, formula)