【发布时间】:2017-01-18 09:01:27
【问题描述】:
我目前正在研究几个 scala 代码库(每个代码库由不同地理位置的不同人员维护),我觉得 Scala 提供了不同的方法来做同样的事情。我的第一手理解是 Scala 有一层相当厚的语法糖代码,所以我现在的直接目标是深入那层,看看基本的构建块是什么。
在阅读了一些文档后,我了解到,scala 中的每个函数定义基本上都是一个带有填充“应用”方法的特征。(类似于 java 中与匿名主体/类的接口)。以此为基础(如果我的基本理解本身是错误的,请纠正我),我正在使用 Scala 中的函数定义。
考虑一下:
def func (s:String):Int = {
100
}
评估为
new Function1[String, Int] {
def apply(s:String):Int = {
100
}
}
但是,以下对特征定义的评估是什么(以及如何)?
def func (body: => Boolean):Int = {
body;
100;
}
在这种情况下,“new Function ...”代码是什么样的?
【问题讨论】: