scala传递命令给php,scala:函数作为值或参数进行传递、作为返回值进行返回

@

函数可以作为值进行传递

语法var f = 函数名 _

如果明确了变量的数据类型,那么下划线可以省略

//函数正常的声明与调用

def foo():Int={

println("foo...")

10

}

//将foo函数的执行结果赋值给res变量

//val res: Int = foo()

//println(res)

//函数作为值进行传递 语法:在函数名称的后面 + 空格 加下划线

//注意:将foo函数作为一个整体,赋值给f变量, f是函数类型 ()=>Int

//val f : () => Int = foo _

def f : () => Int = foo _

//这个时候,f就是一个函数,如果要想运行f函数的话,必须得加()

//println(f) //

//println("-----------------")

//println(f())

//var ff = foo //将函数执行结果赋值给ff

//var ff = foo _ //将函数本身作为值赋给ff

//将函数本身作为值赋给ff 如果明确了变量的类型,那么空格和下划线可以省略

//var ff:()=>Unit = foo

//println(ff)

函数可以作为参数进行传递

通过匿名函数

扩展函数的功能

提高函数的灵活度

//函数可以作为参数,进行传递(大多数情况都是通过匿名函数的形式)

//定义一个函数calculator,该函数接收一个函数类型的参数op,op定义了对两个整数要进行什么样的操作

def calculator(a:Int,b:Int,op:(Int,Int)=>Int): Int ={

op(a,b)

}

//定义一个函数f1,完成两个整数的加法运算

def op(a:Int,b:Int):Int={

a + b

}

//println(calculator(10,20,op))

println(calculator(50, 20, (a: Int, b: Int) => {

a - b

}))

println(calculator(50, 20, _ - _))

println(calculator(50, 20, _ + _))

*/

函数可以作为返回值进行返回

函数的嵌套

函数链式调用,通过参数传递数据,在执行的过程中,函数始终占据栈内存,容易导致内存溢出

闭包

柯里化

//函数可以作为返回值进行返回----函数的嵌套

def f1():()=>Unit ={

def f2(): Unit ={

println("f2函数被调用了")

}

//将f2作为返回值返回给f1

f2 _

}

//ff就是f2

//var ff = f1()

//ff()

//f1()()

什么是匿名函数

参数的类型可以省略,会根据形参进行自动的推导

类型省略之后,发现只有一个参数,则圆括号可以省略;其他情况:没有参数和参数超过1的永远不能省略圆括号。

匿名函数如果只有一行,则大括号也可以省略

如果参数只出现一次,则参数省略且后面参数可以用_代替

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值