匿名函数声明的Scala类型推断

匿名函数声明的Scala类型推断,scala,scala-2.8,type-inference,Scala,Scala 2.8,Type Inference,我是Scala的初学者,我只是好奇Scala如何处理这个代码段的类型推断 trait Expression { .... } def eval (binding : String => Boolean) : Expression => Boolean 我知道绑定是一个将字符串转换为布尔值的函数,但为什么绑定同时可以声明为表达式的成员呢?它是隐式转换的吗?它是如何工作的 对不起,如果我的问题有点混乱 非常感谢:正如Jörg W Mittag所说,这里绝对没有类型推断 def eva

我是Scala的初学者,我只是好奇Scala如何处理这个代码段的类型推断

trait Expression { .... }

def eval (binding : String => Boolean) : Expression => Boolean
我知道绑定是一个将字符串转换为布尔值的函数,但为什么绑定同时可以声明为表达式的成员呢?它是隐式转换的吗?它是如何工作的

对不起,如果我的问题有点混乱


非常感谢:正如Jörg W Mittag所说,这里绝对没有类型推断

def eval (binding : String => Boolean) : Expression => Boolean
只是一个抽象方法声明抽象,因为它没有主体。根据表达式的定义,它可以以不同的方式实现

为什么绑定同时可以声明为表达式的成员


就你发布的内容而言,它不能。正如Jörg W Mittag所说,这里绝对没有类型推断

def eval (binding : String => Boolean) : Expression => Boolean
只是一个抽象方法声明抽象,因为它没有主体。根据表达式的定义,它可以以不同的方式实现

为什么绑定同时可以声明为表达式的成员


鉴于您所发布的内容,它不能。我认为关键点在于,function eval返回一个函数,其类型为Function2[Expression,Boolean]

可以更清楚地说:

def eval (binding : String => Boolean) : (Expression => Boolean)

绑定和表达式之间没有直接关系。

我认为关键的一点是,function eval返回一个函数,其类型是Function2[Expression,Boolean]

可以更清楚地说:

def eval (binding : String => Boolean) : (Expression => Boolean)

绑定和表达式之间没有直接的关系。

您能更具体一点吗?你在说什么类型的推理?您发布的代码中没有类型推断,所有类型都是显式声明的。您能更具体一点吗?你在说什么类型的推理?您发布的代码中没有类型推断,所有类型都显式声明。