匿名函数声明的Scala类型推断
我是Scala的初学者,我只是好奇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
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)
绑定和表达式之间没有直接的关系。您能更具体一点吗?你在说什么类型的推理?您发布的代码中没有类型推断,所有类型都是显式声明的。您能更具体一点吗?你在说什么类型的推理?您发布的代码中没有类型推断,所有类型都显式声明。