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