小编Yin*_*ing的帖子

命名方法和命名函数的定义是什么?

我已经阅读了Scala中方法和函数之间差异以及许多关于方法和函数之间差异的文章.我感觉'方法'只是一个"命名函数",被定义为类,特征或对象中的方法."函数"表示这些文章中的"匿名函数"或"函数文字"或"函数对象".有关证据的信息可以在Scala中编程 http://www.artima.com/shop/programming_in_scala_2ed,第141页,第8.1节中找到,"定义函数的最常用方法是作为某个对象的成员.函数被称为方法."

但是,当我检查Scala语言参考http://www.scala-lang.org/docu/files/ScalaReference.pdf时,有一些概念,如命名方法.在页91,第6.20节中返回表达式:"返回表达式返回e必须出现在一些封闭的命名方法或函数的主体内." 您还可以在同一页面和其他位置找到术语"命名函数".

所以我的问题是,在Scala中,做方法,命名方法和命名函数是指同一个概念吗?你在哪里得到命名函数的定义?

在代码中List(1, 2).map(_ + 1),原始表达式_ + 1是一个命名方法,然后将该方法转换为函数.什么样的函数,匿名函数,函数对象,命名函数?

根据我的理解,Scala只有两种类型的函数:作为方法的命名函数; 一个函数文字的匿名函数.函数文字被编译成特征FunctionN的函数对象,以便在纯粹的面向对象的Scala世界中使用.

但是,对于常规命名的funciton /方法(如_ + 1上面的代码中),为什么Scala会将其转换为另一个函数对象?

methods scala anonymous function named

3
推荐指数
2
解决办法
296
查看次数

标签 统计

anonymous ×1

function ×1

methods ×1

named ×1

scala ×1