默认值:

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
}

最新文章

  1. Azure PowerShell (2) 修改Azure订阅名称
  2. 在ASP.NET Web API项目中使用Hangfire实现后台任务处理
  3. cpu对各种运算的速度对比
  4. Hive:常用的一些命令
  5. Hibernate学习笔记(二)
  6. Nginx 反向代理学习(一)
  7. 创建Java类并实例化的基本过程
  8. win10 用微软账户登录无法访问共享的问题
  9. IoGetDeviceObjectPointer .
  10. Spark Streaming揭秘 Day23 启动关闭源码图解
  11. css3 字体旋转
  12. 24种设计模式--建造者模式【Builder Pattern】
  13. 用标准Struts2+mvc写的用户管理
  14. RH133读书笔记(11)-Lab 11 System Rescue and Troubleshooting
  15. Play使用
  16. [ffmpeg] 多输入滤波同步方式(framesync)
  17. 手机游戏引擎 Cocos
  18. bzoj3514(主席树+lct)
  19. cocos2d JS-(JavaScript) 使用特权方法的例子
  20. OLE、OCX和ActiveX控件之间的比较

热门文章

  1. 使DIV相对窗口大小左右拖动始终水平居中
  2. Java之JNI的介绍与应用20170622
  3. DES算法和MAC算法总结
  4. 洛谷P1637 三元上升子序列
  5. get与post请求简单理解
  6. windows7中用vitualbox安装OS X 10.11 El Capitan 及 Xcode 7.0--转载
  7. Spring整合JMS(一)——基于ActiveMQ实现 (转)
  8. conda 虚拟环境
  9. codeblocks 设置代码自动补全
  10. php每天自动备份数据库