美文网首页
scala函数和方法的区别

scala函数和方法的区别

作者: 青玉_f18c | 来源:发表于2018-04-06 18:32 被阅读0次

1. 定义方式不同
定义方法
def me(a:Int,b:Int) = a+b
定义函数
val fu = (a:Int,b:Int) => a+b
1.1参数列表对于方法是可选的,即:参数列表可以没有,也可以为空。
比如:方法可以这样写
def me() = 10 ; def me = 10 ;
1.2但是对于函数是强制的,即:参数列表可以空,但不能没有。
比如:
val fu = () => 10 这里的括号不能省略。

2.用法不同
2.1 作为参数传递
函数是可以作为参数传递,函数名只是代表函数自身;方法不能作为参数传递,用的方法名的地方意味这调用,那为什么在需要函数出现的地方我们可以提供一个方法,在scala中很多高级函数,如map(),filter()等,都是要求提供一个函数作为参数。但是为什么我们可以提供一个方法呢,比如这样:

scala> val myList = List(3,56,1,4,72)
myList: List[Int] = List(3, 56, 1, 4, 72)

scala> // map()参数是一个函数

scala> myList.map((x) => 2*x)
res15: List[Int] = List(6, 112, 2, 8, 144)

scala> //尝试给map()函提供一个方法作为参数

scala> def m4(x:Int) = 3*x
m4: (x: Int)Int

scala> //正常执行

scala> myList.map(m4)
res17: List[Int] = List(9, 168, 3, 12, 216)

这是因为,如果期望出现函数的地方我们提供了一个方法的话,该方法就会自动被转换成函数。

相关文章

  • Scala编程--方法与函数(二)

    一、Scala 方法与函数 Scala 有方法与函数,二者在语义上的区别很小。Scala 方法是类的一部分,而函数...

  • Spark(十) Spark源码阅读函数式编程知识点

    一、函数和方法 Scala 有方法与函数,二者在语义上的区别很小。Scala 方法是类的一部分,而函数是一个对象可...

  • scala函数和方法的区别

    1. 定义方式不同定义方法def me(a:Int,b:Int) = a+b定义函数val fu = (a:Int...

  • Scala编程基础10:Scala函数1

    Scala中有函数和方法,二者在语义上区别很小。Scala方法是类的一部分,而函数是一个对象,可以赋值给一个变量,...

  • (转载)Scala 方法和函数的区别

    原文链接:https://www.runoob.com/w3cnote/scala-different-funct...

  • Scala 学习笔记

    一、Scala 基础 变量 定义方法和函数 定义方法: 定义函数: 3. apply 方法 通常我们会在类的伴生对...

  • Scala中Method方法和Function函数的区别

    本文将列出一些常见的区别与联系基本的区别 在Scala中方法不是值,而函数是。所以一个方法不能赋值给一个val变量...

  • scala学习 二(方法、函数、区别)

    方法 定义语法: 带有参数列表的方法 无参数列表的方法 带有默认值参数的方法(一个参数可以带多个默认值,位置不同也...

  • Scala-方法和函数

    1、方法的定义 函数值的返回类型也可以不用指定,会自动判断 定义无返回值类型的方法如果方法体有多行语句,使用{}括...

  • Scala-方法和函数

    1、方法的定义 函数值的返回类型也可以不用指定,会自动判断 定义无返回值类型的方法如果方法体有多行语句,使用{}括...

网友评论

      本文标题:scala函数和方法的区别

      本文链接:https://www.haomeiwen.com/subject/dbushftx.html