Scala运算符及函数和方法的调用
Scala中的+ - * / %等运算操作符的作用与Java一样,位操作符 & | ^ >> <<也一样。
由于和java使用基本相同,这里不再赘述。可参考:
https://www.yiibai.com/scala/scala_operators.html
但有一点特别的:这些操作符在scala中实际上是方法。例如:
a + b
是如下方法调用的简写:
a.+(b)
a 方法 b可以写成 a.方法(b)。
方法的调用(2.后面按下table,会有以下相关提示)
定义方法和函数
1 定义方法
def m1(x:Int,y:Int):Int=x+y
定义方法用def关键字,m1为方法名称,x:Int 和 y:Int为参数列表,后面的Int为返回值类型,x+y为方法体。
方法的返回值类型可以不写,编译器可以自动推断出来,但是对于递归函数,必须指定返回类型。
示例:通过递归方法求一个数的阶乘。
def m3(x:Int):Int={
if(x==1) 1
else x*m3(x-1)
}
2 定义函数
定义函数的基本语法:
val f1=(x:Int,y:Int)=>x*y
//调用:
f1(3,4)
3 方法和函数的区别
函数是一个对象,有N个参数,就继承FunctionN这个类。共到Function22,函数最多可以带22个参数。
函数具备该对象的一些方法:
apply curried toString tupled
而方法就是指方法就是对象中的方法。不具备函数的以上特性。
4 方法转换成函数
如果想把方法转换成一个函数,可以用方法名,后面跟上下划线的方式。
val 函数=方法名_