您的位置:首页 > 其它

scala学习笔记4--scala的函数一

2016-08-05 16:49 309 查看
默认值:

def sayMyName(name : String = "Jack"){
println(name)
}


可变参数:

def sumMoreParameters(elem : Int*) = {
var sum = 0
for(e <- elem){
println(e)
sum += e
}
sum
}


下划线的使用:

def add(a:Int,b:Int) = a+b
def add2  = add(_:Int,2)


递归函数:需要显式的给予函数的返回类型

def fac(n:Int):Int = if( n <= 0) 1 else n*fac(n-1)


函数柯里化:

把这个参数一个个独立开来写,这就是柯里化

def mulitply(x:Int)(y:Int) = x*y

def m2 = mulitply(2)_;


柯里化就是把参数可以分开来,把部分函数参数可以用下划线来代替

匿名函数声明方式

val t = ()=>333


:后面是数据类型,c代表传进来的参数

def testfunc02(c : ()=>Int ){
println(c())
1000
}


匿名函数 

val d1 = (a:Int)=> a+100;


匿名函数作为参数,其实就是参数名,后面跟上参数类型,然后是表达式


def testf1(callback : (Int,Int)=>Int )={
println(callback(123,123));
}


嵌套函数,其实就是def里面套一个def

def add3(x:Int, y:Int ,z:Int) : Int = {
def add2(x:Int, y:Int):Int = {
x + y
}
add2(add2(x,y),z)
}


def sum(f : Int => Int) : (Int , Int) => Int = {
def sumF(a : Int , b : Int) : Int =
if (a >b ) 0 else f(a) + sumF( a + 1 , b)
sumF
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: